Сложение двумерных массивов введённых с клавиатуры (Си)
Вот код. Как совершить сложение двух этих массивов
int main()
{
int *a;
int *b;
int i1, j1, n1, m1, i2, j2, n2, m2;
system("chcp 1251");
system("cls");
printf("Введите количество строк матрицы 1: ");
scanf("%d", &n1);
printf("Введите количество столбцов матрицы 1: ");
scanf("%d", &m1);
a = (int*)malloc(n1*m1 * sizeof(int));
b = (int*)malloc(n1*m1 * sizeof(int));
for (i1 = 0; i1 < n1; i1++)
{
for (j1 = 0; j1 < m1; j1++)
{
printf("a[%d][%d] = ", i1, j1);
scanf("%d", (a + i1 * m1 + j1));
}
}
printf("Введите количество строк матрицы 2: ");
scanf("%d", &n2);
printf("Введите количество столбцов матрицы 2: ");
scanf("%d", &m2);
a = (int*)malloc(n2*m2 * sizeof(int));
b = (int*)malloc(n2*m2 * sizeof(int));
for (i2 = 0; i2 < n2; i2++)
{
for (j2 = 0; j2 < m2; j2++)
{
printf("b[%d][%d] = ", i2, j2);
scanf("%d", (b + i2 * m2 + j2));
}
}
printf("Матрица 1:\n");
for (i1 = 0; i1 < n1; i1++)
{
for (j1 = 0; j1 < m1; j1++)
{
printf("%5d ", *(a + i1 * m1 + j1));
}
printf("\n");
}
printf("Матрица 2:\n");
for (i2 = 0; i2 < n2; i2++)
{
for (j2 = 0; j2 < m2; j2++)
{
printf("%5d ", *(b + i2 * m2 + j2));
}
printf("\n");
}....
#include "stdio.h" /*Zamenit' " " na < >*/
#include "stdlib.h" /*Zamenit' " " na < >*/
void matrix_addition(int* a, int* b, int n, int m)
{
int i,j;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
a[i*m+j]+=b[i*m+j];
}
void print_matrix(int* a, int n, int m)
{
int i,j;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
printf("%d ",a[i*m+j]);
printf("\n");
}
printf("\n");
}
void scan_matrix(int *a, int n, int m)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
scanf("%d",(a+i*m+j));
printf("\n");
}
}
int main()
{
int *a, *b;
int n, m;
clrscr();
printf("Elementy strok vvodyatsya cherez probel, novaya stroka vvoditsya posle nazhatiya klavishi \"Enter\".\n");
printf("Vvedite kolichestvo strok: ");
scanf("%d",&n);
printf("Vvedite kolichestvo stolbcov: ");
scanf("%d",&m);
a=(int*)malloc(n*m*sizeof(int));
b=(int*)malloc(n*m*sizeof(int));
printf("Vvedite znachenie elementov matrici a: \n");
scan_matrix(a,n,m);
printf("Vvedite znachenie elementov matrici b: \n");
scan_matrix(b,n,m);
print_matrix(a,n,m);
print_matrix(b,n,m);
matrix_addition(a,b,n,m);
print_matrix(a,n,m);
printf("Press any key for continue ...");
getch();
free(a);
free(b);
return 0;
}