profile

Опубликовано 5 лет назад по предмету Информатика от msdos

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

  1. Ответ
    Ответ дан Alphaeus

    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.

Войдите или зарегистрируйтесь, чтобы добавить ответ или свой вопрос на сайт


Другие вопросы
Хаааа
Математика - 4 недели назад
Хаааа
Математика - 4 недели назад