Дана действительная квадратная матрица порядка N (N — нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей — Pascal(Паскаль)

const 
n=5;
var
a:array[1..n,1..n] of integer;
i,j,maxi,maxj,buf:integer;
begin
for i:=1 to n do
    begin 
        for j:=1 to n do
          begin
            a[i,j]:=random(40);
            write('  ',a[i,j]:3);
          end;
        writeln();
    end;
writeln('--------') ; 

    maxi:=1;
    maxj:=1;
    for i:=1 to N do if a[i,i]>a[maxi,maxj] then
    begin
     maxi:=i; 
     maxj:=i;
    end;
    for i:=1 to N do if a[i,N-i+1]>a[maxi,maxj] then
    begin
     maxi:=i; 
     maxj:=N-i+1;
    end;
    writeln('MAX на диагоналях = ', a[maxi,maxj]);
    buf := a[maxi,maxj];
    a[maxi,maxj]:=a[N div 2 + 1, N div 2 + 1];
    a[N div 2 + 1, N div 2 + 1]:=buf;

end.

Результат работы программы

Leave a Comment

6 + 1 =