Найти максимальный элемент диагонали
Найти максимальный диагональный элемент и указать его координаты в главной диагонали матрицы.
Также решить задачу для побочной диагонали матрицы.
Элементы главной диагонали имеют одинаковые индексы. Поэтому перебрать эту диагональ и найти максимальный элемент проще. Поскольку надо вывести еще и индексы наибольшего элемента, то в переменной-максимуме следует запоминать индекс (один, так как второй такой же).
Для побочной диагонали индексация немного сложнее, однако второй индекс зависит от первого и в Паскале определяется по формуле N-i+1
, где i - первый индекс, N - номер последнего элемента массива. Принцип поиска максимума будет тот же. Сначала предполагаем, что первый элемент диагонали и есть наибольший. Затем перебираем диагональ, начиная с ее второго элемента. Если очередной элемент больше, чей индекс хранится в переменной-максимуме, то записываем туда его первый индекс (второй всегда можно вычислить по формуле).
const N = 10;
var
m: array[1..N,1..N] of integer;
i, j: byte;
max: integer;
begin
randomize;
for i:=1 to N do begin
for j:=1 to N do begin
m[i,j] := random(50);
write(m[i,j]:3);
end;
writeln;
end;
max := i;
for i:=2 to N do
if m[i,i] > m[max,max] then
max := i;
writeln(max,',',max, ' = ', m[max,max]);
max := 1;
for i:=2 to N do
if m[i,N-i+1] > m[max,N-max+1] then
max := i;
writeln(max,',',N-max+1, ' = ', m[max,N-max+1]);
end.
Пример выполнения программы:
0 35 5 8 31 42 1 2 24 16
13 19 16 43 39 27 42 24 29 12
18 20 6 9 36 44 12 23 11 32
49 6 29 42 19 2 8 41 34 21
20 32 40 37 26 45 38 28 12 32
6 4 26 13 35 26 26 27 13 29
45 47 40 20 16 36 17 1 33 28
16 40 16 5 36 42 13 10 28 20
33 30 22 21 33 49 7 10 6 38
29 18 27 36 2 0 16 49 31 37
4,4 = 42
5,6 = 45