请求高手解答C语言难题!一下是题目和我编写的程序,用VC++6.0调试,结果总是不对

来源:百度知道 编辑:UC知道 时间:2024/05/05 19:15:30
题目:编一C程序,它能读入矩阵A的行数L,列数M,矩阵B的列数N(矩阵B的行数是M。L,M,N值都小于20), 以及按行读入矩阵A的L*M个元素(整数)及矩阵B的M*N个元素(整数),计算并输出A与B的矩阵乘积(按行,列输出)。(输入时,注意相邻的两个整数用空格隔开)。
(可执行文件名为e2.exe,存于你的账号或其debug目录下)
程序:#include<stdio.h>
void main()
{int a[20][20],b[20][20],c[20][20],i,j,k,l,m,n;
scanf("%d %d %d",&l,&m,&n);
for(i=0;i<l;i++)
for(j=0;j<m;j++)
scanf(" %d",&a[l][m]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf(" %d",&b[m][n]);
for(i=0;i<l;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];
}
for(i=0;i<l;i++)
for(j=0;j<n;j++)
printf("%d ",c[i][j]);
}
结果总是不正确。。。我怀疑是相邻的两个整数用空格隔开编的不对。。请求高手解答

:#include<stdio.h>
void main()
{int a[20][20],b[20][20],c[20][20],i,j,k,l,m,n;
scanf("%d %d %d",&l,&m,&n);
for(i=0;i<l;i++)
for(j=0;j<m;j++)
scanf(" %d",&a[l][m]);//这里循环的是i和j,用l和m不起作用
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf(" %d",&b[m][n]);//这里也是
for(i=0;i<l;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];
}
for(i=0;i<l;i++)
for(j=0;j<n;j++)
printf("%d ",c[i][j]);
}