C语言编写一个C函数实现M行K列矩阵与K行N列的矩阵的乘积。设A为M行K列的矩阵,B为K行N列的矩阵,则C=A×B的积为M行N列的矩阵。 其中:M为2,K为3,N为2. 矩阵乘法的规则是:设A[m,k],B[k,n],则C[m,n]=A[m,k]
时间: 2024-02-12 17:07:57 浏览: 98
好的,这是一个矩阵乘法的经典问题,以下是C语言实现:
```c
void matrixMultiplication(int a[][3], int b[][2], int c[][2], int m, int k, int n) {
int i, j, l;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
c[i][j] = 0;
for (l = 0; l < k; l++) {
c[i][j] += a[i][l] * b[l][j];
}
}
}
}
```
其中,`a`为M行K列的矩阵,`b`为K行N列的矩阵,`c`为M行N列的矩阵,`m`、`k`、`n`分别为矩阵`a`、`b`、`c`的行数和列数。
使用示例:
```c
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int c[2][2];
matrixMultiplication(a, b, c, 2, 3, 2);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
```
输出结果:
```
22 28
49 64
```
其中,`c[0][0] = 1×1+2×3+3×5=22`,`c[0][1] = 1×2+2×4+3×6=28`,`c[1][0] = 4×1+5×3+6×5=49`,`c[1][1] = 4×2+5×4+6×6=64`。
阅读全文