C语言实现两个矩阵相乘
时间: 2024-05-02 16:20:23 浏览: 38
下面是C语言实现两个矩阵相乘的代码:
```c
#include <stdio.h>
#define ROW1 3
#define COL1 2
#define ROW2 2
#define COL2 4
void matrix_multiply(int a[][COL1], int b[][COL2], int c[][COL2]);
int main()
{
int a[ROW1][COL1] = {{1, 2},
{3, 4},
{5, 6}};
int b[ROW2][COL2] = {{1, 2, 3, 4},
{5, 6, 7, 8}};
int c[ROW1][COL2];
matrix_multiply(a, b, c);
printf("The result of matrix multiplication is:\n");
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < COL2; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
void matrix_multiply(int a[][COL1], int b[][COL2], int c[][COL2])
{
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < COL2; j++) {
int sum = 0;
for (int k = 0; k < ROW2; k++) {
sum += a[i][k] * b[k][j];
}
c[i][j] = sum;
}
}
}
```
程序中定义了两个常量`ROW1`和`COL1`分别表示第一个矩阵的行数和列数,`ROW2`和`COL2`分别表示第二个矩阵的行数和列数。在`main`函数中,定义了两个矩阵`a`和`b`,并将它们的乘积存储在矩阵`c`中。调用函数`matrix_multiply`进行矩阵乘法的计算,并输出结果。
函数`matrix_multiply`中,使用三层循环实现了矩阵乘法的计算过程。循环变量`i`控制第一个矩阵的行数,变量`j`控制第二个矩阵的列数,变量`k`控制第一个矩阵的列数和第二个矩阵的行数。在循环中,使用变量`sum`记录每一项的乘积之和,最后将结果存储在矩阵`c`中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)