В матрице определить три элемента с наибольшими значениями - 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.
Объяснение кода листинга программы
- Переменная
n
инициализируется значением 6. - Переменная
m
инициализируется значением 3. - Создается переменная
a
, которая представляет собой массив целых чисел размером от 1 доn
на 1 доm
. - Создаются три переменные
i
,j
иmax1
, которые будут использоваться для поиска максимального значения в матрице. - Выполняется цикл
for
, который проходит по каждому элементу массиваa
. - Внутри первого цикла
for
выполняется второй циклfor
, который проходит по каждому элементу массиваa
второго измерения. - В каждой итерации второго цикла
for
присваивается значение случайного числа от 1 до 100 элементу массиваa
соответствующего индекса. - Значение каждого элемента выводится на экран.
- После окончания второго цикла
for
выполняется первый циклfor
, который обновляет максимальные значенияmax1
,max2
иmax3
. - Если текущий элемент массива
a
большеmax1
, тоmax3
устанавливается равнымmax2
,max2
устанавливается равнымmax1
, аmax1
устанавливается равным текущему элементу. - Если текущий элемент массива
a
большеmax2
, тоmax3
устанавливается равнымmax2
, аmax2
устанавливается равным текущему элементу. - Если текущий элемент массива
a
большеmax3
, тоmax3
устанавливается равным текущему элементу. - Выводится сообщение с максимальными значениями
max1
,max2
иmax3
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д