Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить 3 наибольших числа среди них.
Program msdos_2;
uses crt;
var
a:array[1..3] of integer; //массив трёх максимальных элементов
r,max,i,j: integer;
begin
writeln(*** alphaues is thinking... ***);
writeln(*** OK ***);
r:=1;
writeln(Введите ненулевое число);
writeln((или введите 0 для конца последовательности) );
{вводим 3 первых элемента}
for i:=1 to 3 do
begin
write(Ввод:);
readln (r);
a[i]:=r;
end;
{сортируем массив из 3-х первых элементов}
for i:=1 to 2 do
begin
max:=a[i];
for j:=i+1 to 3 do
if a[j]>max then
max:=a[j];
a[j]:=a[i];
a[i]:=max;
end;
{Продолжаем ввод и сравниваем текущее число с массивом из 3-х первых}
while r<>0 do
begin
write(Ввод:);
readln (r);
if r>a[1] then
begin
a[3]:=a[2];
a[2]:=a[1];
a[1]:=r;
end
else
if r>a[2] then
begin
a[3]:=a[2];
a[2]:=r;
end
else
if r>a[3] then
a[3]:=r;
end;
{выводим 3 максимальных элемента}
writeln();
writeln(Три наибольших элемента массива:);
for i:=1 to 3 do
writeln(i,-й: ,a[i]);
end.
