做了个矩阵相乘的程序,但怎么算都不对!
c语言吧
全部回复
仅看楼主
level 9
0影_舞0 楼主
如题,程序如下:
#include <stdio.h>
#include <math.h>
void main()
{int a[10][10],b[10][10],c[10][10],x1,x2,y1,y2,z1,z2,sum,m;
int i,j,k;
printf("请输入第一个矩阵的行数了列数:\n");
scanf("%d%d",&x1,&x2);
printf("请依次输入第一个矩阵的数据:\n");
for (i=0;i<x1;i++)
for (j=0;j<x2;j++)
scanf("%d",a[i][j]);
printf("请输入第二个矩阵的行数了列数:\n");
scanf("%d%d",&y1,&y2);
printf("请依次输入第二个矩阵的数据:\n");
for (i=0;i<y1;i++)
for (j=0;j<y2;j++)
scanf("%d",b[i][j]);
if (x2!=y1)
{printf("两矩阵无法相乘,请重新输入");}
else
{printf("两矩阵乘积为:\n");
for (i=0;i<x1;i++)
{ for (j=0;j<y2;j++)
{ for (k=0;k<y1;k++)
{ m=a[i][k]*b[k][j];
sum=sum+m;}
c[i][j]=sum;
printf("%6d",c[i][j]);}
printf("\n");}
}
}

2011年11月24日 13点11分 1
level 5
首先你的输入格式就是错的,scanf("%d",&a[i][j]);
2011年11月24日 14点11分 2
level 6
m=a[i][k]*b[k][j];
sum=sum+m;
这个加的好乱···
2011年11月24日 23点11分 4
level 9
0影_舞0 楼主
恩 谢谢,已经找到问题了,是scanf后面的&没写,谢谢!
2011年11月25日 09点11分 5
1