Дано не менее трех различных натуральных чисел, за которыми следует 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.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку