Даны действительные числа a, b, c, d. Если a <= b <= c <= d, то каждое число заменить
наибольшим из них; если a > b > c > d, то числа оставить без изменения; в противном случае все
числа заменить их квадратами.
C/C++
ПОМОГИТЕ СОСТАВИТЬ ПРОГРАММУ НА C++.
#include <iostream>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
bool does_not_decrease(double a, double b, double c, double d) {
return a <= b && b <= c && c <= d;
}
bool is_strictly_increasing(double a, double b, double c, double d) {
return a > b && b > c && c > d;
}
double max(double a, double b, double c, double d) {
auto ab_max = a > b? a : b;
auto cd_max = c > d? c : d;
return ab_max > cd_max? ab_max : cd_max;
}
void square(double& a, double& b, double& c, double& d) {
a *= a;
b *= b;
c *= c;
d *= d;
}
void show(const char* msg, double x) {
cout << msg << x << '\n';
}
int main() {
auto a = real("a: ");
auto b = real("b: ");
auto c = real("c: ");
auto d = real("d: ");
puts("");
if (does_not_decrease(a, b, c, d)) a = b = c = d = max(a, b, c, d);
else if (is_strictly_increasing(a, b, c, d));
else square(a, b, c, d);
show("a: ", a);
show("b: ", b);
show("c: ", c);
show("d: ", d);
system("pause > nul");
}
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
bool does_not_decrease(double a, double b, double c, double d) {
return a <= b && b <= c && c <= d;
}
bool is_strictly_increasing(double a, double b, double c, double d) {
return a > b && b > c && c > d;
}
double max(double a, double b, double c, double d) {
auto ab_max = a > b? a : b;
auto cd_max = c > d? c : d;
return ab_max > cd_max? ab_max : cd_max;
}
void square(double& a, double& b, double& c, double& d) {
a *= a;
b *= b;
c *= c;
d *= d;
}
void show(const char* msg, double x) {
cout << msg << x << '\n';
}
int main() {
auto a = real("a: ");
auto b = real("b: ");
auto c = real("c: ");
auto d = real("d: ");
puts("");
if (does_not_decrease(a, b, c, d)) a = b = c = d = max(a, b, c, d);
else if (is_strictly_increasing(a, b, c, d));
else square(a, b, c, d);
show("a: ", a);
show("b: ", b);
show("c: ", c);
show("d: ", d);
system("pause > nul");
}
Что ты спамишь?!
Ответят небойся
Ответят небойся
Похожие вопросы
- Помогите составить программу на Visual Studio C++
- Составить программу на c++ УСПОЛЬЗУЯ МАССИВ!!!
- Помогите написать программу на C++
- Помогите с программой на C++
- Помогите написать программу на C++
- Помогите в программой в C++
- Составить программу на C++ если можно с объяснением.!
- ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ НА C++
- Помогите написать программу на C++
- ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ НА C++ ИСПОЛЬЗУЯ ТОЛЬКО ЦИКЛЫ.