大佬们,能不能帮我看看二维数组计算矩阵的问题出在哪
#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出现了问题 本帖最后由 ExiaGN001 于 2022-6-22 22:12 编辑
就改了一行代码
把所有中文括号改成英文再运行
#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;
memset(C,0,sizeof(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【b】 );
}
}
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【b】 += A*B【b】;
}
}
}
for(a=0;a<g;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",B【b】);
}
printf("\n");
}
for(a=0;a<i;a++)
{
for(b=0;b<k;b++)
{
printf("%d ",C【b】);
}
printf("\n");
}
Finish: if(p)
{
printf("矩阵A的列数不等于矩阵B的行数,无法计算");
}
else
{
;
}
return 0;
}
页:
[1]