В матрице определить три элемента с наибольшими значениями - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В произвольно заданном двумерном массиве размера 6×3 определить три элемента с наибольшими значениями. Есть программа, но она пропускает наибольшее значение и выводит следующее после него. Подскажите в чем ошибка?

Решение задачи: «В матрице определить три элемента с наибольшими значениями»

textual
Листинг программы
const n=6;
      m=3;
var  a:array [1..n,1..m] of integer;
     i,j,max1,max2,max3:integer;
begin
randomize;
writeln(' ');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(100);
    write(a[i,j]:3);
   end;
  writeln;
 end;
max1:=a[1,1];
max2:=a[1,1];
max3:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if a[i,j]>max1 then
 begin
  max3:=max2;
  max2:=max1;
  max1:=a[i,j]
 end
else if a[i,j]>max2 then
 begin
  max3:=max2;
  max2:=a[i,j];
 end
else if a[i,j]>max3 then max3:=a[i,j];
writeln ('max1=',max1);
writeln ('max2=',max2);
writeln ('max3=',max3);
end.

Объяснение кода листинга программы

  1. Переменная n инициализируется значением 6.
  2. Переменная m инициализируется значением 3.
  3. Создается переменная a, которая представляет собой массив целых чисел размером от 1 до n на 1 до m.
  4. Создаются три переменные i, j и max1, которые будут использоваться для поиска максимального значения в матрице.
  5. Выполняется цикл for, который проходит по каждому элементу массива a.
  6. Внутри первого цикла for выполняется второй цикл for, который проходит по каждому элементу массива a второго измерения.
  7. В каждой итерации второго цикла for присваивается значение случайного числа от 1 до 100 элементу массива a соответствующего индекса.
  8. Значение каждого элемента выводится на экран.
  9. После окончания второго цикла for выполняется первый цикл for, который обновляет максимальные значения max1, max2 и max3.
  10. Если текущий элемент массива a больше max1, то max3 устанавливается равным max2, max2 устанавливается равным max1, а max1 устанавливается равным текущему элементу.
  11. Если текущий элемент массива a больше max2, то max3 устанавливается равным max2, а max2 устанавливается равным текущему элементу.
  12. Если текущий элемент массива a больше max3, то max3 устанавливается равным текущему элементу.
  13. Выводится сообщение с максимальными значениями max1, max2 и max3.
  14. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы