Последний элемент строк матриц - сумма предыдущих элементов строки

Задача

Матрица 5x4 заполняется вводом с клавиатуры кроме последних элементов строк. Программа должна вычислять сумму введенных элементов каждой строки и записывать ее в последнюю ячейку строки. В конце следует вывести полученную матрицу.

Пояснение к задаче и алгоритм решения

Перед тем как заполнять каждую строку матрицы, переменной, в которой будет храниться сумма элементов строки, надо присвоить 0. Когда вводится очередной элемент строки, его значение должно добавляться к сумме.

Каждая строка заполняется во внутреннем цикле. Количество его итераций (повторов) должно быть на единицу меньше, чем длина строки.

После того, как внутренний цикл завершится (т.е. строка будет заполнена, кроме последнего элемента) надо присвоить накопленную сумму последнему элементу текущей строки матрицы.

Исходный код на языке программирования Pascal

const
    M = 5;
    N = 4;
var
    a: array[1..N,1..M] of integer;
    i, j, sum: byte;
begin
    for i:=1 to N do begin
        sum := 0;
        write(i,'-я строка: ');
        for j:=1 to M-1 do begin
            read(a[i,j]);
            sum := sum + a[i,j]
        end;
        a[i,M] := sum;
    end;
    for i:=1 to N do begin
        for j:=1 to M do
            write(a[i,j],' ');
        writeln;
    end;
end.

Пример(ы) выполнения программы на языке Pascal

1-я строка: 4 3 3 2
2-я строка: 1 2 2 9
3-я строка: 3 7 3 0
4-я строка: 10 1 12 4
4 3 3 2 12
1 2 2 9 14
3 7 3 0 13
10 1 12 4 27

Исходный код на языке программирования C

#include <stdio.h>
#define M 5
#define N 4
main() {
    int a[N][M], i, j, sum;
    for (i=0; i<N; i++) {
        sum = 0;
        printf("%d-я строка: ", i);
        for (j=0; j<M-1; j++) {
            scanf("%d", &a[i][j]);
            sum += a[i][j];
        }
        a[i][M-1] = sum;
    }
    for (i=0; i<N; i++) {
        for (j=0; j<M; j++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
}

Пример(ы) выполнения программы на языке C

0-я строка: 8 12 14 15
1-я строка: 4 5 3 22
2-я строка: 4 9 3 17
3-я строка: 16 3 15 0
8 12 14 15 49
4 5 3 22 34
4 9 3 17 33
16 3 15 0 34

Исходный код на языке программирования Python

M = 5
N = 4
a = []
for i in range(N):
    b = []
    s = 0
    print("%d-я строка:" % i)
    for j in range(M-1):
        n = int(input())
        s += n
        b.append(n)
    b.append(s)
    a.append(b)
 
for i in a:
    print(i)

Пример(ы) выполнения программы на языке Python

0-я строка:
5
3
5
3
1-я строка:
1
3
5
3
2-я строка:
5
6
4
7
3-я строка:
2
5
7
8
[5, 3, 5, 3, 16]
[1, 3, 5, 3, 12]
[5, 6, 4, 7, 22]
[2, 5, 7, 8, 22]

Исходный код на языке программирования КуМир

алг сумма строки
нач
  цел M = 5, N = 4
  цел таб a[1:N, 1:M]
  цел i, j, sum
  нц для i от 1 до N
    sum := 0
    вывод i, "-я строка: "
    нц для j от 1 до M-1
      ввод a[i,j]
      sum := sum + a[i,j]
    кц
    a[i,M] := sum
  кц
  нц для i от 1 до N
    нц для j от 1 до M
      вывод a[i,j], " "
    кц
    вывод нс
  кц
кон

Пример(ы) выполнения программы на языке КуМир

1-я строка: 5
4
6
2
2-я строка: 6
4
6
-1
3-я строка: 8
10
18
3
4-я строка: 6
4
-5
2
5 4 6 2 17
6 4 6 -1 15
8 10 18 3 39
6 4 -5 2 7

Исходный код на языке программирования Basic

M = 5
N = 4
dim a(N,M)
for i=0 to N-1
        sum = 0
        print i + "-я строка:"
        for j=0 to M-2
                input a[i,j]   
                sum = sum + a[i,j]
        next j
        a[i,M-1] = sum
next i
for i=0 to N-1
        for j=0 to M-1
                print a[i,j] + " ";
        next j
        print
next i

Пример(ы) выполнения программы на языке Basic

0-я строка:
4
5
2
5
1-я строка:
1
2
6
3
2-я строка:
4
7
8
2
3-я строка:
0
9
3
2
4 5 2 5 16
1 2 6 3 12
4 7 8 2 21
0 9 3 2 14

Тема

Матрицы

Уровень сложности

Средний

Дата публикации