首先,写一个程序可以将两个矩阵相加,需要按照以下步骤进行:
- 定义两个矩阵,并初始化数据
- 定义一个结果矩阵
- 遍历两个矩阵,并将对应元素相加,然后存放到结果矩阵中
- 输出结果矩阵
下面是一个标准的C程序代码示例:
#include <stdio.h>
#define ROW 2
#define COL 2
void matrix_add(int matrix1[][COL], int matrix2[][COL], int result[][COL]);
int main()
{
int matrix1[ROW][COL] = {{1, 2},
{3, 4}};
int matrix2[ROW][COL] = {{5, 6},
{7, 8}};
int result[ROW][COL];
matrix_add(matrix1, matrix2, result);
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
void matrix_add(int matrix1[][COL], int matrix2[][COL], int result[][COL])
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
result[i][j] = matrix1[i][j] + matrix2[i][j];
}
}
}
该代码定义了一个2x2的矩阵,并将其与另外一个2x2的矩阵相加,并将结果存放在另一个矩阵中,最后输出结果矩阵。
下面再给出一个两个矩阵大小不一致的示例:
#include <stdio.h>
#define ROW1 2
#define COL1 3
#define ROW2 3
#define COL2 2
void matrix_add(int matrix1[][COL1], int matrix2[][COL2], int result[][COL2], int row1, int col1, int row2, int col2);
int main()
{
int matrix1[ROW1][COL1] = {{1, 2, 3},
{4, 5, 6}};
int matrix2[ROW2][COL2] = {{7, 8},
{9, 10},
{11, 12}};
int result[ROW1][COL2];
matrix_add(matrix1, matrix2, result, ROW1, COL1, ROW2, COL2);
for (int i = 0; i < ROW1; i++)
{
for (int j = 0; j < COL2; j++)
{
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
void matrix_add(int matrix1[][COL1], int matrix2[][COL2], int result[][COL2], int row1, int col1, int row2, int col2)
{
if (row1 != row2 || col1 != col2)
{
printf("The size of matrices is not the same!");
return;
}
for (int i = 0; i < row1; i++)
{
for (int j = 0; j < col2; j++)
{
result[i][j] = matrix1[i][j] + matrix2[i][j];
}
}
}
该代码定义了一个2x3的矩阵和一个3x2的矩阵,将它们相加得到一个2x2的结果矩阵,并输出。在函数中加入防御性编程,若两个矩阵的行列数不相等则输出错误信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C程序 将两个矩阵相加 - Python技术站