矩阵乘法。编写一个函数实现矩阵A(n行m列)与矩阵B相乘(m行n列),乘积放在C数组中。在主函数中输入相乘的两数组,并输出结果。
时间: 2024-03-02 20:49:03 浏览: 203
好的,下面是实现矩阵乘法的代码:
```c
#include <stdio.h>
void matrix_multiply(int A[][100], int B[][100], int C[][100], int n, int m) {
int i, j, k;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
C[i][j] = 0;
for (k = 0; k < m; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
int main() {
int n, m, i, j;
int A[100][100], B[100][100], C[100][100];
printf("请输入矩阵A的行数和列数(中间用空格隔开):");
scanf("%d %d", &n, &m);
printf("请输入矩阵A:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf("%d", &A[i][j]);
}
}
printf("请输入矩阵B的行数和列数(中间用空格隔开):");
scanf("%d %d", &m, &n);
printf("请输入矩阵B:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &B[i][j]);
}
}
matrix_multiply(A, B, C, n, m);
printf("矩阵A与矩阵B相乘的结果是:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
```
主要思路是,通过两个for循环遍历矩阵A和矩阵B,计算每个元素的乘积并累加到结果矩阵C中。最后输出矩阵C即可。
注意,这里假设矩阵的最大大小为100*100。如果需要处理更大的矩阵,需要修改代码。
阅读全文