Напишите программу обмена значений переменных a, b, c в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.
procedure swap(var x, y: integer);
var m: integer;
begin
m := x;
x := y;
y := m
end;
Исходные данные вводятся с клавиатуры.
| Пример входных данных | Пример выходных данных |
|---|---|
| 1 2 3 | 1 2 3 |
| 2 1 3 | 1 2 3 |
| 3 1 2 | 1 2 3 |
| 2 3 1 | 1 2 3 |
Процедура swap меняет значения двух переменных через вспомогательную m. Параметры x и y помечены var, поэтому меняются именно переданные переменные основной программы. Сравним сначала a и b, затем b и c, затем ещё раз a и b: после каждого обмена устраняется нарушение порядка в соответствующей паре.
var a, b, c: integer;
procedure swap(var x, y: integer);
var m: integer;
begin
m := x;
x := y;
y := m
end;
begin
readln(a, b, c);
if a > b then swap(a, b);
if b > c then swap(b, c);
if a > b then swap(a, b);
writeln(a, ' ', b, ' ', c)
end.
Для входа
| Шаг | a | b | c | Причина |
|---|---|---|---|---|
| Ввод | Исходные значения | |||
| swap(a, b) | ||||
| swap(b, c) | ||||
| Последняя проверка |
После второй проверки c — наибольшее из трёх чисел; последняя проверка расставляет a и b. При разных входных числах получается строгое
Для всех четырёх примеров на выходе
