Поскольку двумерный массив обычно перебирается построчно, то сумму строк считать проще. Можно, заполняя строку матрицы и выводя ее элементы на экран, накапливать в переменной сумму элементов строки и выводить ее в конце строки.
Для сумм столбцов можно предусмотреть отдельный массив, в ячейках которого накапливать сумму каждого столбца. При построчном проходе по матрице, каждый новый элемент следует суммировать с соответствующим ему элементом массива сумм столбцов. Индекс элемента в строке матрицы будет совпадать с индексом элемента в массиве сумм.
Выводить суммы столбцов следует в отдельном цикле.
const M = 10; N = 5; var a: array[1..N,1..M] of integer; i, j: byte; s: integer; sc: array[1..M] of integer; begin for i:= 1 to M do sc[i] := 0; for i:=1 to N do begin s := 0; for j:=1 to M do begin a[i,j] := random(10); write(a[i,j]:6); s := s + a[i,j]; sc[j] := sc[j] + a[i,j] end; writeln (' |', s); end; for i:= 1 to M do write('--':6); writeln; for i:= 1 to M do write(sc[i]:6); writeln; end. вот
Поскольку двумерный массив обычно перебирается построчно, то сумму строк считать проще. Можно, заполняя строку матрицы и выводя ее элементы на экран, накапливать в переменной сумму элементов строки и выводить ее в конце строки.
Для сумм столбцов можно предусмотреть отдельный массив, в ячейках которого накапливать сумму каждого столбца. При построчном проходе по матрице, каждый новый элемент следует суммировать с соответствующим ему элементом массива сумм столбцов. Индекс элемента в строке матрицы будет совпадать с индексом элемента в массиве сумм.
Выводить суммы столбцов следует в отдельном цикле.
const M = 10; N = 5; var a: array[1..N,1..M] of integer; i, j: byte; s: integer; sc: array[1..M] of integer; begin for i:= 1 to M do sc[i] := 0; for i:=1 to N do begin s := 0; for j:=1 to M do begin a[i,j] := random(10); write(a[i,j]:6); s := s + a[i,j]; sc[j] := sc[j] + a[i,j] end; writeln (' |', s); end; for i:= 1 to M do write('--':6); writeln; for i:= 1 to M do write(sc[i]:6); writeln; end. вот