|
10鱼币
#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]出现了问题
本帖最后由 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[i][j];
int B[g][k];
int C[i][k];
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[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;
}
|
-
最佳答案
查看完整内容
就改了一行代码
把所有中文括号改成英文再运行
#include
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[j];
int B[g][k];
int C[k];
memset(C,0,sizeof(C));//有改动,要记得 ...
|