C/C++

Помогите с заданием на С++

Составить программу нахождения требуемого значения с указанными исходными данными. Поиск минимального (min) и максимального (max) значений элементов организовать в виде отдельной функции.  
При вводе данных использовать проверку на ввод нечисловых данных. 

В плюсах уже есть min и max как отдельные функции, поэтому можно так:
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
double m, x, y, z;
while (true)
{
cout << "x y z: ";
cin >> x >> y >> z;
m = max(y, z) / min(min(x, y), min(y, z));
cout << m << endl;
}
}
Проверку - самостоятельно!
Руслан Пастушенко
Руслан Пастушенко
66 572
Лучший ответ
Бауржан Асыкпаев Только они не в cmath - с cmath надо поправить на fmax и fmin.
 #include  
#include
#include
using namespace std;
double input(const char* msg) {
double value;
string line;
while (true) {
cout > line;
try {
value = stod(line);
break;
} catch (...) {
cin.clear();
}
}
cin.ignore(numeric_limits::max(), '\n');
return value;
}
double min(const double a, const double b) {
return a < b ? a : b;
}
double max(const double a, const double b) {
return a > b ? a : b;
}
int main() {
const auto x = input("x: ");
const auto y = input("y: ");
const auto z = input("z: ");
const auto d = min(min(x, y), min(y, z));
if (0 == d) puts("Error: division by zero!");
else {
const auto m = max(y, z) / d;
cout.setf(ios::fixed);
cout.precision(12);
cout
#include <iostream>
#include <limits>
#include <cmath>
using namespace std;
double input(void){
double a; const char e[]="Once more, please!\n";
while(true){
cin>>a;
if( cin.fail ()){
cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout<<e; continue;}
cin.ignore(numeric_limits<streamsize>::max(),'\n');
if(cin.gcount()>1||a<=0){cout<<e;continue;} break;} return a;}
double min(double a, double b){return fmin(a,b);}
int main(){
double x,y,z;
cout<<"x: "; x=input();
cout<<"y: "; y=input();
cout<<"z: "; z=input();
cout<<"m="<<-min(-y,-z)/min(min(x,y),min(y,z))<<endl;}