C/C++

Даны действительные положительные числа на С++

Даны действительные положительные числа a, b, с, х, у. Выяснить, пройдет ли кирпич с ребрами a, b, с в прямоугольное отверстие со сторонами х и у. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия
Rozario Agro
Rozario Agro
211
#include <iostream>
using namespace std;
struct Hole {
double width;
double length;
Hole() : width(0.0), length(0.0) {}
void set_dimensions(const double a, const double b) {
width = a < b ? a : b;
length = a > b ? a : b;
}
};
struct Brick {
double height;
double width;
double length;
Brick() : height(6.0), width(12.0), length(25.0) {}
void set_dimensions(const double a, const double b, const double c) {
height = (a < b) ? (a < c) ? a : c : (b < c) ? b : c;
length = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
width = a + b + c - height - length;
}
bool goes_through(const Hole& hole) {
return height <= hole.width && width <= hole.length;
}
};
double overall_dimension(const char* msg) {
cout << msg;
double value;
cin >> value;
return value;
}
int main() {
Brick brick;
auto a = overall_dimension("a: ");
auto b = overall_dimension("b: ");
auto c = overall_dimension("c: ");
brick.set_dimensions(a, b, c);
Hole hole;
auto x = overall_dimension("x: ");
auto y = overall_dimension("y: ");
hole.set_dimensions(x, y);
if (brick.goes_through(hole)) puts("Yes!");
else puts("No!");
}
Егор Дубовик
Егор Дубовик
57 577
Лучший ответ
#include "iostream"
#include "algorithm"
using namespace std;
int main(){
float k[5]; cout<<"Brick (3 numbers) and Hole (2 numbers): ";
for(float &i:k)cin>> i; sort(k,k+3); sort(k+3,k+5);
cout<<boolalpha<<(k[1]<=k[4]&&k[0]<=k[3])<<endl;}
Олег Бодрин
Олег Бодрин
98 770

Похожие вопросы