C程序 将两个矩阵相加
下面的程序将两个大小为4*4的正方形矩阵相加,我们可以为不同维度改变N。
// C program to implement
// the above approach
#include <stdio.h>
#define N 4
// This function adds A[][] and B[][],
// and stores the result in C[][]
void add(int A[][N], int B[][N],
int C[][N])
{
int i, j;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
C[i][j] = A[i][j] + B[i][j];
}
// Driver code
int main()
{
int A[N][N] = {{1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
int B[N][N] = {{1, 1, 1, 1},
{2, 2, 2, 2},
{3, 3, 3, 3},
{4, 4, 4, 4}};
// To store result
int C[N][N];
int i, j;
add(A, B, C);
printf("Result matrix is ");
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
printf("%d ", C[i][j]);
printf("");
}
return 0;
}
输出:
Result matrix is
2 2 2 2
4 4 4 4
6 6 6 6
8 8 8 8
这个程序可以扩展到矩形矩阵。下面的帖子可以对扩展这个程序有帮助。
如何在C语言中传递一个二维数组作为参数?
上述程序的时间复杂度为O(n 2 )。
上述问题的辅助空间是O(n 2 )