大佬们,能不能看看我这个二维数组计算矩阵的问题出在哪?
#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;
int B;
int C;
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);
}
}
for(c=0;c<g;c++)
{
for(d=0;d<k;d++)
{
printf("请输入B矩阵行和列:");
scanf("%d",&B);
}
}
for(a=0;a<i;a++)
{
for(b=0;b<k;b++)
{
for(c=0;c<j;c++)
{
C += A*B;
}
}
}
for(a=0;a<g;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",B);
}
printf("\n");
}
for(a=0;a<i;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",C);
}
printf("\n");
}
Finish: if(p)
{
printf("矩阵A的列数不等于矩阵B的行数,无法计算");
}
else
{
;
}
return 0;
}
结果C出现了问题 你要怎么计算法?? ba21 发表于 2022-6-21 17:38
你要怎么计算法??
我的计算方法是错误的吗?
初学者00000001 发表于 2022-6-21 17:40
我的计算方法是错误的吗?
2*2的矩阵相乘,2行1列的结果是错误的,其他没有错,我在想是不是哪里设错了,计算方法应该是没问题
初学者00000001 发表于 2022-6-21 17:40
我的计算方法是错误的吗?
所以问你要怎么算法?
c = a*b?????
c = a*b????? 初学者00000001 发表于 2022-6-21 17:43
2*2的矩阵相乘,2行1列的结果是错误的,其他没有错,我在想是不是哪里设错了,计算方法应该是没问题
你的 int C; 初始化了?(全部元素为 0?)
代码中的C += A*B; 确定 C 不是随机值? 傻眼貓咪 发表于 2022-6-21 18:14
你的 int C; 初始化了?(全部元素为 0?)
代码中的C += A*B; 确定 C 不是随机值?
谢谢大佬
页:
[1]