Нахождение наибольшего числа из трех
Евгений Мухутдинов
[к списку
задач]
Найти наибольшее число из трех. Если числа равны, то вывести
любое из них.
Входные данные
В единственной строке входного файла INPUT.TXT записано три
числа через пробел. Все числа целые, не меньше -10000 и не
больше 10000.
Выходные данные
В файл OUTPUT.TXT выведите единственное число.
Пример
INPUT.TXT |
OUTPUT.TXT |
4 7 5
-10 -1000 -100
8 8 8 |
7
-10
8 |
Решение
В очередной раз я упростил задачу за счет того, что при
равенстве чисел можно вывести любое из них. Как и в задаче "Нахождение
наибольшего числа из двух" возможно несколько вариантов
решения. Здесь будет рассмотрено два из них.
Вариант 1.
Первый способ решения задачи основан на использовании
дополнительной переменной. Т.е. кроме трех перемененных
(например а, b, с) используются
дополнительная переменная (например с именем "max)
для хранения наибольшего значения. Это пример привожу
лишь по той причине, что порой, он оказвается проще для
понимания.
Решение задачи на Паскале.
var
a,b,c,max:integer;
begin
read(a,b,c);
if a > b then
max:=a
else
max:=b;
if max > c then
write(max)
else
write(c);
end.
Вариант 2.
Как видно из блок-схемы приведенной ниже, использовать
дополнительную переменную нет никакой нужды. Отказавшись от
полного ветвления при проверке первого условия, удалось
уменьшить и код программы. Обратите внимание, что для
использования неполного ветвления надо проверять условие
a<b,
а не a>b.
Решение на Паскале.
var
a,b,c:integer;
begin
read(a,b,c);
if a < b then
a:=b;
if a > c then
write(a)
else
write(c);
end.
В книге
С. Окулова "Основы программирования " , для решения этой
задачи предлагается использовать составные условия. Вот как
будет выглядеть текст программы в этом случае:
var
a,b,c:integer;
begin
read(a,b,c);
if (a > b) and (a > c) then
write(a)
else
if (b > a) and (b > c) then
write(b)
else
write(c);
end.
[к списку
задач]
|