Поиск наибольшего элемента в матрице
Категория: Delphi/Pascal
2011-08-26 20:28:58
Дана действительная квадратная матрица порядка N(n- нечетное). Все элементы матрицы различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.
code: #pascal
- const
- nmax = 101;
- var
- a: array[1..nmax, 1..nmax] of longint;
- n, i, j, maxi, maxj, v : longint;
- begin
- repeat
- write('Введите нечётное n < ', nmax, ': ');
- readln(n);
- if not odd(n) then
- writeln('n должно быть нечётно');
- if n > nmax then
- writeln('n должно быть меньше ', nmax);
- until (odd(n) and (n < nmax));
- writeln('Ввод матрици');
- for i:=1 to n do
- for j:=1 to n do begin
- write('a[', i, ',', j, '] = ');
- readln(a[i, j]);
- end;
- maxi := 1;
- maxj := 1;
- for i:=1 to n do
- begin
- if a[i,i]>a[maxi,maxj] then
- begin maxi:=i;
- maxj:=i;
- end;
- if a[i,n-i+1]>a[maxi,maxj] then
- begin maxi:=i;
- maxj:=n-i+1;
- end;
- end;
- v := a[maxi, maxj];
- a[maxi, maxj] := a[(n + 1) div 2, (n + 1) div 2];
- a[(n + 1) div 2, (n + 1) div 2] := v;
- writeln('После обработки матрица принела следующий вид:');
- for i:=1 to n do begin
- for j:=1 to n do
- write(a[i, j], ' ');
- writeln;
- end;
- end.
Поделиться: