题解 | #矩阵乘法#
矩阵乘法
https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b
//矩阵循环输入,乘法为m3[i][j] += m1[i][k] * m2[k][j];这里注意m3[i][j]不要写在循环里,会产生堆栈溢出。 #include <stdio.h> int main() { int x, y, z, k; scanf("%d %d %d", &x, &y, &z); int m1[x][y], m2[y][z], m3[x][z];//为什么不能初始化为{0} int temp=0; for(int i =0;i<x;i++) { for(int j =0;j<y;j++) { scanf("%d",&m1[i][j]); } } for(int i =0;i<y;i++) { for(int j =0;j<z;j++) { scanf("%d",&m2[i][j]); } } for(int i = 0; i<x; i++) { for(int j = 0; j<z; j++) { for(int k = 0; k<y; k++) { temp += m1[i][k] * m2[k][j]; //这里直接写m3[i][j]会出现堆栈溢出 } m3[i][j] = temp; temp = 0; } } for(int i = 0; i<x; i++) { for(int j = 0; j<z; j++) { printf("%d ", m3[i][j]); } printf("\n"); } return 0; }