Задача. Даны действительные числа [latex] x, y, z.[/latex] Вывести наименьшее и наибольшее из них. Если наименьших или наибольших чисел окажется несколько, то укажите в скобках количество.
Тесты
[latex] x [/latex] | [latex] y [/latex] | [latex]z[/latex] | Наименьшее число | Наибольшее число |
100.56 | 812.34 | -12 | -12 | 812.34 |
-722.5 | 812.34 | -722.5 | -722.5 (2) | 812.34 |
256 | 145695 | 145695 | 256 | 145695 (2) |
0 | 0 | 0 | 0 (3) | 0(3) |
-518.3 | -759.3 | -1995.6 | -1995.6 | -518.3 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#include <iostream> using namespace std; int main() { long double x, y, z, min, max; int counter, number; counter = 1; number = 1; cin >> x >> y >> z; min = 0; min = x; if(y < min){ min = y; counter = 1; } else if(y == min){ counter ++; } if(z < min){ min = z; counter = 1; } else if (z == min){ counter++; } max = 0; max = y; if(x > max){ max = x; number = 1; } else if(x == max){ number ++; } if(z > max){ max = z; number = 1; } else if(z == max){ number ++; } if(counter !=1 ){ cout << min << "("<<counter<<")" << endl; } else { cout << min << endl; } if(number != 1){ cout << max << "("<<number<<")" << endl; } else { cout << max << endl; } return 0; } |
Здесь находится код в ideone.com
Решение
- Так как по условию нам даны действительные числа, то, чтобы охватить наибольший диапазон чисел, используем тип данных long double;
- Для того, чтобы решить данную задачу мы предполагаем, что одна из переменных является наименьшей[latex] (x=min)[/latex] , а потом сравниваем ее с остальными переменными.
- Возможно, наше предположение верно. Тогда присваиваем счетчику значение [latex] 1 [/latex]. Если какая-либо из оставшихся переменных равна минимуму, то увеличиваем значение счетчика на единицу.
- Если значение переменной [latex] y[/latex] или [latex] z[/latex] меньше минимума, то наше предположение было не верно. Тогда присваиваем значение минимального числа соответствующей переменной, а счетчику — значение [latex] 1 [/latex] . Если несколько переменных имеют наименьшее значение, то при каждом совпадении значения счетчик увеличивается на единицу.
- Аналогичный подход применяем к максимальному значению.