使用C语言编写矩阵相乘
时间: 2023-07-11 13:05:41 浏览: 123
下面是一个简单的C语言程序,用于计算矩阵相乘:
```c
#include <stdio.h>
#define ROW1 3
#define COL1 2
#define ROW2 2
#define COL2 3
void matrix_multiply(int mat1[][COL1], int mat2[][COL2], int result[][COL2]) {
int i, j, k;
for (i = 0; i < ROW1; i++) {
for (j = 0; j < COL2; j++) {
result[i][j] = 0;
for (k = 0; k < ROW2; k++) {
result[i][j] += mat1[i][k] * mat2[k][j];
}
}
}
}
int main() {
int mat1[ROW1][COL1] = {{1, 2}, {3, 4}, {5, 6}};
int mat2[ROW2][COL2] = {{7, 8, 9}, {10, 11, 12}};
int result[ROW1][COL2];
matrix_multiply(mat1, mat2, result);
int i, j;
for (i = 0; i < ROW1; i++) {
for (j = 0; j < COL2; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
27 30 33
61 68 75
95 106 117
```
此程序中使用了一个 `matrix_multiply` 函数来计算两个矩阵的乘积。该函数接受三个参数,分别是两个矩阵和一个用于存储结果的二维数组。在函数内部,使用三个嵌套的循环来进行矩阵相乘,并将结果存储在结果矩阵中。
在 `main` 函数中,定义了两个矩阵和一个结果矩阵,然后调用 `matrix_multiply` 函数来计算结果,并使用嵌套循环来打印结果矩阵中的每个元素。
阅读全文