Напишите программу, которая должна определить, пройдет ли кирпич в отверстие. Размеры отверстия (длина и высота) вводит пользователь. Тоже самое касается габаритов кирпича, пользователь вводит в программу значения длины, ширины и высоты кирпича.
Достаточно не простая задача, просто постарайтесь решить её, не подглядывая в готовый код. Для удобства, начертил проекции так называемого кирпича.
// проекции кирпича /* ****************************************** ***************** * сторона № 2 * * сторона № 1 * * * * * ****************************************** ***************** ****************************************** * * * * * сторона № 3 * * * * * ****************************************** */
Ниже показан результат работы программы:
#include <iostream>
using namespace std;
int main()
{
double a, b, c, d, l;
cout << "Enter the length(a): "; // длина кирпича
cin >> a;
cout << "Enter the width(b): "; // ширина кирпича
cin >> b;
cout << "Enter the height(c): "; // высота кирпича
cin >> c;
cout << "Enter the length of the oppenings(d): "; // вводим длину отверстия
cin >> d;
cout << "Enter the height of the oppenings(l): "; // вводим высоту отверстия
cin >> l;
switch ( (b <= d) && (c <= l) ? 1 : (a <= d) && (c <= l) ? 2 : (a <= d) && ( b <= l) ? 3 : -1 ) // составное условие
{
case 1 : {cout << "Brick went into the hole by the first party" << endl; break; } // кирпич прошёл через отверстие первой стороной
case 2 : {cout << "Brick went into the hole by the second party" << endl; break; } // кирпич прошёл через отверстие второй стороной
case 3 : {cout << "Brick went into the hole by a third party" << endl; break; } // кирпич прошёл через отверстие третьей стороной
default : cout << "Brick did not pass through the hole" << endl; // кирпич не прошёл через отверстие
}
return 0;
}
// проекции кирпича
/*
****************************************** *****************
* сторона № 2 * * сторона № 1 *
* * * *
****************************************** *****************
******************************************
* *
* *
* сторона № 3 *
* *
* *
******************************************
*/

Комментарии
Kiruxa_UA
#include <iostream>
using namespace std;
int main() {
int a, b, d, l;
cout << «Input the length(a): «;
cin >> a;
cout << «Input the height(b): «;
cin >> b;
cout << «Input the length of the oppenings(d): «;
cin >> d;
cout << «Input the height of the oppenings(l): «;
cin >> l;
if (b == l && a != d) {
cout << «Brick went into the hole by first party»;
}
else if (a == d && b != l) {
cout << «Brick went into the hole by second party»;
}
else if (a == d && b == l) {
cout << «The bricks completely correspond to the dimensions of the hole»;
}
else {
cout << «Brick doesn’t enter into the hole»;
}
return 0;
}
stalkerhack
#include <iostream> using namespace std; int main() { int brick_length, brick_width, brick_hight; int hole_length, hole_hight; //Brick parameters cout << "Enter the brick length: "; cin >> brick_length; cout << "\nEnter the brick width: "; cin >> brick_width; cout << "\nEnter the brick hight: "; cin >> brick_hight; //Hole parameters cout << "\nEnter the hole length: "; cin >> hole_length; cout << "\nEnter the brick hight: "; cin >> hole_hight; if ((brick_length <= hole_length || brick_width <= hole_length) & brick_hight <= hole_hight) { cout << "Brick went into the hole!" << endl; } else { cout << "Brick can not went into the hole!" << endl; } return 0; }colt
#include "stdafx.h" #include "iostream" #include "windows.h" #include "string" #include "stdlib.h" using namespace std; #define NOS 3 //количество размерностей кирпича #define NOE 2 //количество размерностей отверстия отверстия int intHoleMin, intHoleMax, intBrickMin, intBrickMax; int intBrickDimensions[NOS]; //размеры кирпича int intHoleDimensions[NOE]; //размеры отверстия bool bIsPossible[NOS]; //массив-индикатор возможности "i"-й стороны пройти в отверстие bool bIsntPossible; //индикатор того, что кирпич вообще не пройдёт в отверстие string strSides[NOS]={ "стороной 1 (ширина-длина)", "стороной 2 (длина-высота)", "стороной 3 (высота-ширина)" }; string strDimensions[NOS]={ "ширину", "длину", "высоту" }; int f_intCycle(int i, int l) //функция при выходе за пределы массива переводит указатель на первый элемент { if (i==l) return 0; else return i; } int _tmain(int argc, _TCHAR* argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); while(true) { system("CLS"); cout<<"\t\t\tОпределить, пройдет ли кирпич в отверстие\n\n"; bIsntPossible=true; //иницализируем индикатор того, что кирпич вообще не пройдёт в отверстие for (int i=0;i<NOS;i++) //вводим размер кирпича и инициализируем массив-индикатор возможности "i"-й стороны пройти в отверстие { cout<<"Введите "<<strDimensions[i]<<" кирпича: "; cin>>intBrickDimensions[i]; bIsPossible[i]=false; } for (int i=0;i<NOE;i++) //вводим размер отверстия { cout<<"Введите "<<strDimensions[i]<<" отверстия: "; cin>>intHoleDimensions[i]; } intHoleMin=min(intHoleDimensions[0],intHoleDimensions[1]); //вычиляем минимальную размерность отверстия intHoleMax=max(intHoleDimensions[0],intHoleDimensions[1]); //вычисляем максимальную размерность отверстия for (int i=0;i<NOS;i++) { intBrickMin=min(intBrickDimensions[i],intBrickDimensions[f_intCycle((i+1),NOS)]); //вычиляем минимальную размерность "i"-й стороны кирпича intBrickMax=max(intBrickDimensions[i],intBrickDimensions[f_intCycle((i+1),NOS)]); //вычисляем максимальную размерность "i"-й стороны кирпича if ((intBrickMin<intHoleMin)&(intBrickMax<intHoleMax)) //сравниваем минимальные и максимальные размеронсти "i"-й стороны кирпича и отверстия { bIsPossible[i]=true; //сообщаем массиву-индикатору о возможности "i"-й стороны пройти в отверстие bIsntPossible=false; //сообщаем индикатору того, что кирпич вообще не пройдёт в отверстие, что он не прав =))) } } if (bIsntPossible) cout<<"В это отверстие кирпич никак не влезет, даже не пробуйте\n\n"; else { cout<<"В это отверстие кирпич влезет следующими сторонами:\n"; for (int i=0;i<NOS;i++) if (bIsPossible[i]) cout<<strSides[i]<<endl; //выводим стороны кирпича, которые пройдут через отверстие } system("PAUSE"); } return 0; }colt
Замечу, что решение в примере не полное , например:
Размер отверстия 3х6 пи этом должен влезть в отверстие как кирпич 2х4 так и 4х2.
odto11
#include <iostream> using namespace std; int main() { double dLB, dWB, dHB; //длинна, ширина, высота кирпича double dW, dH; //ширина, высота отверстия cout << "\t\tПройдёт кирпич или нет???" << endl; cout << "Введите длинну кирпича: "; cin >> dLB; cout << "Введите ширину кирпича: "; cin >> dWB; cout << "Введите высоту кирпича: "; cin >> dHB; cout << "Введите ширина отверстия: "; cin >> dW; cout << "Введите высоту отверстия: "; cin >> dH; if(dWB <= dW && dHB <= dH) { cout << "Кирпич войдёт в отверстие 1-й стороной" << endl; } else if(dLB <= dW && dHB <= dH) { cout << "Кирпич войдёт в отверстие 2-й стороной" << endl; } else if(dLB <= dW && dWB <= dH ) { cout << "Кирпич войдёт в отверстие 3-й стороной" << endl; } else { cout << "Кирпич не войдёт" << endl; } return 0; }colt
Я имею ввиду пример от admin.