Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить 3...

0 голосов
55 просмотров

Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить 3 наибольших числа среди них.


Информатика (20 баллов) | 55 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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.

(52.6k баллов)