Найти максимальный элемент диагонали
Задача
Найти максимальный диагональный элемент и указать его координаты в главной диагонали матрицы.
Также решить задачу для побочной диагонали матрицы.
Решение
Элементы главной диагонали имеют одинаковые индексы. Поэтому перебрать эту диагональ и найти максимальный элемент проще. Поскольку надо вывести еще и индексы наибольшего элемента, то в переменной-максимуме следует запоминать индекс (один, так как второй такой же).
Для побочной диагонали индексация немного сложнее, однако второй индекс зависит от первого и в Паскале определяется по формуле 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