Дан двумерный массив, заменить элементы расположенные ** главной диагонали ** 1,...

0 голосов
25 просмотров

Дан двумерный массив, заменить элементы расположенные на главной диагонали на 1, остальные на 0.


Информатика (62 баллов) | 25 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
procedure MasPrint(a:array[,] of integer; k:integer);
begin
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to Length(a,1)-1 do Write(a[i,j]:k);
    Writeln
    end
end;

begin
  var n:=ReadInteger('Задайте число строк/столбцов в массиве:');
  var a:=MatrixRandom(n,n,-99,99);
  Writeln('Исходный массив');
  MasPrint(a,4);
  for var i:=0 to n-1 do
    for var j:=0 to n-1 do
      if i=j then a[i,j]:=1 else a[i,j]:=0;
  Writeln('Результирующий массив');
  MasPrint(a,2)
end.

Тестовое решение
Задайте число строк/столбцов в массиве: 8
Исходный массив
  42  94  45 -22 -15 -19 -43  68
 -55 -52 -81  62 -16 -11  40  -2
 -95 -94  -1 -83  63  -9  29 -15
 -82  53 -26  24 -47 -74  45  48
  55 -50 -23  30 -95  77 -47 -55
  96  40  32  11 -14 -41 -36 -11
  88  37 -81 -59 -83 -27 -19 -49
 -35 -39 -39  32 -93  33  16 -80
Результирующий массив
 1 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0
 0 0 1 0 0 0 0 0
 0 0 0 1 0 0 0 0
 0 0 0 0 1 0 0 0
 0 0 0 0 0 1 0 0
 0 0 0 0 0 0 1 0
 0 0 0 0 0 0 0 1

(142k баллов)
0

Спасибо))