|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
通过中间加入检查,过程都正确,只是最后输出时,参照第一个矩阵敲入的后面两个,结果第一个不能正确输出了。求助第一个为什么不能正确输出结果。
- #include<stdio.h>
- int main()
- {
- int m,n,p,q;
- int i,j,k,x,row;
- printf("请输入第一个矩阵的尺寸(M*P);");
- scanf("%d",&m);
- getchar();
- scanf("%d",&p);
- printf("请输入第二个矩阵的尺寸(P*N);");
- scanf("%d",&q);
- getchar();
- scanf("%d",&n);
- if(p!=q)printf("矩阵尺寸不能计算");
- int array1[m][p];
- printf("请输入第一个矩阵的值:\n");
- for(i=0;i<m;i++)
- {
- for(j=0;j<p;j++)
- {
- scanf("%d",&array1[i][j]);
- }
- getchar();
- }
- //临时检查用输出
- //输出第一个矩阵值
- //printf("第一个矩阵值\n");
- //for(i=0;i<m;i++)
- //{
- // for(j=0;j<p;j++)
- // {
- // printf("%d ", array1[i][j]);
- // }
- // printf("\n");
- //}
- printf("请输入第二个矩阵的值:\n");
- int array2[p][n];
- for(i=0;i<p;i++)
- {
- for(j=0;j<n;j++)
- {
- scanf("%d",&array2[i][j]);
- }
- getchar();
- }
- //临时检查输入用,输出第二个矩阵值
- //printf("第二个矩阵值\n");
- //for(i=0;i<p;i++)
- //{
- // for(j=0;j<n;j++)
- // {
- // printf("%d ",array2[i][j]);
- // }
- // printf("\n");
- //}
- //计算矩阵值
- int array3[m][n];
- for(i=0;i<m;i++) //矩阵赋初值为0
- {
- for(j=0;j<n;j++)
- {
- array3[i][j]=0;
- }
- }
- for(i=0;i<m;i++) //矩阵相乘计算
- {
- for(j=0;j<n;j++)
- {
- for(k=0;k<p;k++)
- {
- array3[i][j]+=array1[i][k]*array2[k][j];
- }
- }
- }
- //临时检查,输出运算结果矩阵值
- //printf("第三个矩阵计算结果\n");
- //for(i=0;i<m;i++)
- //{
- // for(j=0;j<n;j++)
- // {
- // printf("%d ",array3[i][j]);
- // }
- // printf("\n");
- //}
- //输出
- row=m>p?m:p;
- for(i=0;i<row;i++)
- {
- //打印第一个矩阵行
- printf("| ");
- for(j=0;k<p;j++)
- {
- if(i<m)
- {
- printf("\b%d ",array1[i][j]);
- printf("|");
- }
- else
- {
- printf("\b\b\b ");
- }
- }
- //打印*号
- if(i==row/2)
- {
- printf(" * ");
- }
- else
- {
- printf(" " );
- }
- //打印第二个矩阵行
- printf("| ");
- for(j=0;j<n;j++)
- {
- if(i<p)
- {
- printf("\b%d ",array2[i][j]);
- printf("|");
- }
- else
- {
- printf("\b\b\b ");
- }
- }
- //打印=号
- if(i==row/2)
- {
- printf(" = ");
- }
- else
- {
- printf(" ");
- }
- //打印第三个矩阵行
- printf("| ");
- for(j=0;j<n;j++)
- {
- if(i<m)
- {
- printf("\b%d ",array3[i][j]);
- printf("|");
- }
- else
- {
- printf("\b\b\b ");
- }
- }
- printf("\n");
- }
- return 0;
- }
复制代码
|
|