9536. Сумма
матриц
Заданы две
матрицы A и B. Найдите их
сумму C = A + B.

Вход. Первая строка содержит размеры
матриц – два целых числа n и m (1 ≤ n, m
≤ 100). Далее идут n строк по m целых чисел, задающих
матрицу A. Затем следует пустая строка, после которой в том же формате
приводится матрица B.
Выход. Выведите матрицу С: n строк
по m целых чисел.
|
Пример
входа |
Пример
выхода |
|
3 4 3 4 5 6 1 2 3 4 7 6 5 4 0 0 -3 -2 -1 3 4 5 5 6 1 2 |
3 4 2 4 0 5 7 9 12 12 6 6 |
алгебра
По
заданным матрицам А и В находим их сумму – матрицу С, где
Сij = Aij + Bij
Объявим матрицы a, b и c.
#define MAX 101
int a[MAX][MAX], b[MAX][MAX], c[MAX][MAX];
Читаем входные данные – матрицы А и В.
scanf("%d %d", &n, &m);
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
scanf("%d", &b[i][j]);
Вычисляем сумму матриц C = A + B.
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
c[i][j] = a[i][j] + b[i][j];
Выводим результирующую матрицу.
for (i = 0; i < n; i++)
{
for (j = 0; j < m;
j++)
printf("%d ", c[i][j]);
printf("\n");
}
Объявим матрицы a, b и c как
двойные указатели.
int **a, **b, **c;
Функция Read читает
матрицу matr.
void Read(int **&matr,
int n, int m)
{
matr = new int* [n];
for (i
= 0; i < n; i++)
{
matr[i] = new int[m];
for (j
= 0; j < m; j++)
scanf("%d", &matr[i][j]);
}
}
Функция Sum вычисляет
сумму матриц A + B и сохраняет ее в матрице C.
void Sum(int **a,
int **b,
int **&c,
int n, int m)
{
c = new int* [n];
for (i
= 0; i < n; i++)
{
c[i] = new int[m];
for (j
= 0; j < m; j++)
c[i][j] = a[i][j] + b[i][j];
}
}
Функция Print выводит
матрицу A.
void Print(int **a)
{
for (i
= 0; i < n; i++)
{
for (j
= 0; j < m; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}
Основная часть программы. Читаем размеры матриц n и m.
scanf("%d %d", &n, &m);
Читаем матрицы a и b.
Read(a,
n, m);
Read(b,
n, m);
Вычисляем сумму матриц C = A + B.
Sum(a,
b, c, n, m);
Выводим результирующую матрицу.
Print(c);