Задача: Даны действительные числа [latex]x,y,z[/latex] Вычислить:
[latex]\min\left(x,y,z\right)[/latex]
[latex]\max\left(x,y,z\right)[/latex]
Ввод | Вывод | |||
[latex]x[/latex] | [latex]y[/latex] | [latex]z[/latex] | Output | Комментарий |
0 | 0 | 0 | Max — 0 Min — 0 |
Пройден |
1 | 2 | 3 | Max — 3 Min — 1 |
Пройден |
3 | 2 | 1 | Max — 3 Min — 1 |
Пройден |
10.1 | 10.01 | 10.001 | Max — 10.1 Min — 10.001 |
Пройден |
12345.12345 | 12345.123445 | 12345.12346 | Max — 12345.123456 Min — 12345.123445 |
Пройден |
0.001 | 0.0009 | 0.00099 | Max — 0.001 Min — 0.0009 |
Пройден |
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> int main() { double x, y, z; scanf("%lf %lf %lf", &x, &y, &z); double min = (x<y) ? (x<z ? x : z) : (y<z ? y : z); double max = (x>y) ? (x>z ? x : z) : (y>z ? y : z); printf("Максимум - %lf, Минимум - %lf", max, min); return 0; } |
Идея решение: Сохранить в переменную [latex]\min[/latex] и [latex]\max[/latex] числа, соответствующие минимальному и максимальному из данного набора, полученных путем (довольно сложных) вычислений с применением вложенных в тернарные операции тернарных операций.