Дана действительная квадратная матрица порядка N(n- нечетное). Все элементы матрицы различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей — 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.

Leave a Comment

90 − 85 =