Посчитать суммы каждой строки и каждого столбца матрицы. Вывести суммы строк в конце каждой строки, а суммы столбцов под соответствующими столбцами.
Поскольку двумерный массив обычно перебирается построчно, то сумму строк считать проще. Можно, заполняя строку матрицы и выводя ее элементы на экран, накапливать в переменной сумму элементов строки и выводить ее в конце строки.
Для сумм столбцов можно предусмотреть отдельный массив, в ячейках которого накапливать сумму каждого столбца. При построчном проходе по матрице, каждый новый элемент следует суммировать с соответствующим ему элементом массива сумм столбцов. Индекс элемента в строке матрицы будет совпадать с индексом элемента в массиве сумм.
Выводить суммы столбцов следует в отдельном цикле.
Pascal
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;
#include < stdio.h>
#define M 10
#define N 5
main() {
int a[N][M];
int sc[M];
int s, i, j;
srand(time(NULL));
for (i=0; i< M; i++) sc[i] = 0;
for (i=0; i< N; i++) {
s = 0;
for (j=0; j< M; j++) {
a[i][j] = rand() % 10;
printf("%5d", a[i][j]);
s += a[i][j];
sc[j] += a[i][j];
}
printf(" |%d\n", s);
}
for (i=0; i< M; i++)
printf("%5s", "--");
printf("\n");
for (i=0; i< M; i++)
printf("%5d", sc[i]);
printf("\n");
}
Python
сумма элементов строки матрицы python (питон)
from random import random
M = 10
N = 5
a = []
for i in range(N):
b = []
for j in range(M):
b.append(int(random()*11))
print("%3d" % b[j], end='')
a.append(b)
print(' |', sum(b))
for i in range(M):
print(" --", end='')
print()
for i in range(M):
s = 0
for j in range(N):
s += a[j][i]
print("%3d" % s, end='')
print()
Пример(ы) выполнения программы на языке Python:
6 7 3 10 10 10 4 2 6 5 | 63
2 8 0 9 0 4 9 3 6 3 | 44
5 3 1 10 5 6 5 2 0 9 | 46
10 9 10 8 7 8 5 2 10 9 | 78
3 3 6 0 4 1 6 10 10 3 | 46
-- -- -- -- -- -- -- -- -- --
26 30 20 37 26 29 29 19 32 29
В Python используется немного иной алгоритм решения задачи. Сначала создается пустой список - будущая матрица. Далее в цикле в нее добавляются вложенные списки.
Суммы строк матрицы вычисляются с помощью функции sum(), которой передается текущий список-строка цикла.
Суммы столбцов вычисляются путем прохода по каждому столбу матрицы. Обратите внимание, что здесь наоборот: внешний цикл - проход по столбцам, внутренний - по строкам.
КуМир
алг суммы строк столбцов
нач
цел M = 10, N = 5
цел таб a[1:N,1:M], sc[1:M]
цел i, j, s
нц для i от 1 до M
sc[i] := 0
кц
нц для i от 1 до N
s := 0
нц для j от 1 до M
a[i,j] := int(rand(0,10))
вывод a[i,j], " "
s := s + a[i,j]
sc[j] := sc[j] + a[i,j]
кц
вывод " |", s, нс
кц
нц для i от 1 до M
вывод "---"
кц
вывод нс
нц для i от 1 до M
вывод sc[i], " "
кц
кон
Basic-256
M = 10
N = 5
dim a(N,M)
dim sc(M)
for i = 0 to N-1
s = 0
for j=0 to M-1
a[i,j] = int(rand*10)
print a[i,j] + " ";
s = s + a[i,j]
sc[j] = sc[j] + a[i,j]
next j
print " |" + s
next i
for i=0 to M-1
print "-- ";
next i
print
for i=0 to M-1
print sc[i] + " ";
next i
print
Подписаться
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Pascal
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;
#include < stdio.h> #define M 10 #define N 5 main() { int a[N][M]; int sc[M]; int s, i, j; srand(time(NULL)); for (i=0; i< M; i++) sc[i] = 0; for (i=0; i< N; i++) { s = 0; for (j=0; j< M; j++) { a[i][j] = rand() % 10; printf("%5d", a[i][j]); s += a[i][j]; sc[j] += a[i][j]; } printf(" |%d\n", s); } for (i=0; i< M; i++) printf("%5s", "--"); printf("\n"); for (i=0; i< M; i++) printf("%5d", sc[i]); printf("\n"); }
Python
сумма элементов строки матрицы python (питон)
from random import random M = 10 N = 5 a = [] for i in range(N): b = [] for j in range(M): b.append(int(random()*11)) print("%3d" % b[j], end='') a.append(b) print(' |', sum(b))
for i in range(M): print(" --", end='') print()
for i in range(M): s = 0 for j in range(N): s += a[j][i] print("%3d" % s, end='') print()
Пример(ы) выполнения программы на языке Python:
6 7 3 10 10 10 4 2 6 5 | 63 2 8 0 9 0 4 9 3 6 3 | 44 5 3 1 10 5 6 5 2 0 9 | 46 10 9 10 8 7 8 5 2 10 9 | 78 3 3 6 0 4 1 6 10 10 3 | 46 -- -- -- -- -- -- -- -- -- -- 26 30 20 37 26 29 29 19 32 29 В Python используется немного иной алгоритм решения задачи. Сначала создается пустой список - будущая матрица. Далее в цикле в нее добавляются вложенные списки.
Суммы строк матрицы вычисляются с помощью функции sum(), которой передается текущий список-строка цикла.
Суммы столбцов вычисляются путем прохода по каждому столбу матрицы. Обратите внимание, что здесь наоборот: внешний цикл - проход по столбцам, внутренний - по строкам.
КуМир
алг суммы строк столбцов нач цел M = 10, N = 5 цел таб a[1:N,1:M], sc[1:M] цел i, j, s нц для i от 1 до M sc[i] := 0 кц
нц для i от 1 до N s := 0 нц для j от 1 до M a[i,j] := int(rand(0,10)) вывод a[i,j], " " s := s + a[i,j] sc[j] := sc[j] + a[i,j] кц вывод " |", s, нс кц
нц для i от 1 до M вывод "---" кц вывод нс нц для i от 1 до M вывод sc[i], " " кц кон
Basic-256
M = 10 N = 5 dim a(N,M) dim sc(M) for i = 0 to N-1 s = 0 for j=0 to M-1 a[i,j] = int(rand*10) print a[i,j] + " "; s = s + a[i,j] sc[j] = sc[j] + a[i,j] next j print " |" + s next i
for i=0 to M-1 print "-- "; next i print for i=0 to M-1 print sc[i] + " "; next i print