求助!问题出在哪?
5.6 实现一个函数, 传入一个矩阵, 输出该矩阵乘以该矩阵转置的结果输入:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输出:
30 70 110 150
70 174 278 382
110 278 446 614
150 382 614 846
程序代码:
#include<stdio.h> int n,m; int main() { int i,j; printf("请输入矩阵的行数n与列数m:"); scanf("%d%d",&n,&m); int x[n][m]; printf("请输入整数矩阵"); for(i=0;i<=n-1;i++) {for(j=0;j<=m-1;j++) {scanf("%d",&x[i][j]);} } void y(int x[n][m]); y(x); return 0; } void y(int x[n][m]) {int i,j,k; int z[n][n]; z[0][0]=0; for(i=0;i<=n-1;i++) { for(j=0;j<=n-1;j++) { for(k=0;k<=m-1;k++) {z[i][j]=z[i][j]+x[i][k]*x[j][k];} } } for(i=0;i<=n-1;i++) { for(j=0;j<=n-1;j++) {printf("%40d",z[i][j]);} printf("\n");} }
结果却出现一些莫明奇妙的数,为什么?