По заданим матрицям і знаходимо їх суму — матрицю , де
Реалізація алгоритму
Оголосимо матриці і .
#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");
}Реалізація алгоритму – подвійний вказівник
Оголосимо матриці , і як подвійні вказівники:
int **a, **b, **c;Функція Read читає матрицю .
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 і зберігає її в матриці .
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 виводить матрицю .
void Print(int **a)
{
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
printf("%d ", a[i][j]);
printf("\n");
}
}Основна частина програми. Читаємо розміри матриць і .
scanf("%d %d", &n, &m);Читаємо матриці і .
Read(a, n, m);
Read(b, n, m);Вираховуємо суму матриць C = A + B.
Sum(a, b, c, n, m);Виводимо результуючу матрицю.
Print(c);