|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
int i,j,g,k,a,b,c,d,row;
int p=0;
printf("请输入A矩阵的行数和列数(例如2-3):");
scanf("%d-%d",&i,&j);
printf("请输入B矩阵的行数和列数:");
scanf("%d-%d",&g,&k);
int A[i][j];
int B[g][k];
int C[i][k];
getchar();//吸收回车键
if(j!=g)
{
goto Finish;
p=1;
}
for(a=0;a<i;a++)
{
for(b=0;b<j;b++)
{
printf("请输入A矩阵行和列:");
scanf("%d",&A[a][b]);
}
}
for(c=0;c<g;c++)
{
for(d=0;d<k;d++)
{
printf("请输入B矩阵行和列:");
scanf("%d",&B[c][d]);
}
}
for(a=0;a<i;a++)
{
for(b=0;b<k;b++)
{
for(c=0;c<j;c++)
{
C[a][b] += A[a][c]*B[c][b];
}
}
}
for(a=0;a<g;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",B[a][b]);
}
printf("\n");
}
for(a=0;a<i;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",C[a][b]);
}
printf("\n");
}
Finish: if(p)
{
printf("矩阵A的列数不等于矩阵B的行数,无法计算");
}
else
{
;
}
return 0;
}
结果C[1][0]出现了问题
你的 int C[i][k]; 初始化了?(全部元素为 0?)
代码中的 C[a][b] += A[a][c]*B[c][b]; 确定 C[a][b] 不是随机值?
|
-
|