Найти максимальный элемент на главной диагонали матрицы и на побочной - Free Pascal
Формулировка задачи:
Помогите исправить код, чтобы программа находила максимальный элемент на главной диагонале матрицы и на побочной.
Var
a: array [1..99,1..99] of integer;
m,n,i,j,max,p,c: integer;
b: array [1..99] of integer;
Begin
Randomize;
write('m = ');
readln(m);
write('n = ');
readln(n);
writeln('Ishodnyi massiv:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to m do
begin
b[i]:=a[i,i];
for j:=2 to m do
begin
if (b[i] < a[j,j]) then
begin
b[i]:=a[j,j];
max:=b[i];
end
end;
if (i=1) then
max:=b[i];
end;
writeln(max:4);
p:=1;
for i:=m downto 1 do
begin
b[i]:=a[i,p];
for j:=m downto 2 do
begin
if (b[i] < a[i-1,p+1]) then
begin
b[i]:=a[i-1,p+1];
max:=b[i];
end
end;
if (i=m) then
begin
max:=b[i];
end;
p:=p+1;
end;
write(max:4);
End.Решение задачи: «Найти максимальный элемент на главной диагонали матрицы и на побочной»
textual
Листинг программы
var a: array [1..20,1..20] of integer;
n,i,j,maxg,maxp: integer;
begin
randomize;
write('n = ');
readln(n);
writeln('Ishodnyi massiv:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
maxg:=a[1,1];
maxp:=a[1,n];
for i:=1 to n do
begin
if a[i,i]>maxg then maxg:=a[i,i];
if a[i,n-i+1]>maxp then maxp:=a[i,n-i+1];
end;
writeln('max gl.diagonali=',maxg);
writeln('max pb.diagonali=',maxp);
readln
end.
Объяснение кода листинга программы
- Объявлены переменные:
- a: двумерный массив (20x20) целых чисел;
- n: количество заполненных элементов массива;
- i, j: индексы для обхода массива;
- maxg, maxp: для хранения максимальных значений главной и побочной диагоналей соответственно.
- Задается количество заполненных элементов массива (n).
- Заполняется массив случайными целыми числами от 0 до 99.
- Выводится заполненный массив.
- Инициализируются переменные maxg и maxp первым элементом главной и побочной диагоналей соответственно.
- Происходит обход массива по диагонали, сравнивая текущий элемент с текущим maxg и maxp и обновляя их при необходимости.
- Выводятся значения maxg и maxp.
- Программа ожидает нажатия клавиши для завершения работы.