编程计算两个矩阵的乘积输入后没反应
编写了一个程序计算两个3*3矩阵的乘积,想让它有MATLAB的显示风格。代码如下:#include<stdio.h>
char x,y; //定义全局变量,分别表示参与运算的两个矩阵的矩阵名
int main()
{
int product(int (*p)[3],int (*q)[3]); //声明计算两个3*3矩阵乘积的函数
int a[3][3],b[3][3]; //定义两个矩阵
int i,j;
int (*p)[3]=a,(*q)[3]=b; //定义两个指针变量,分别指向两个矩阵的首行地址
printf("Please input the first matrix:\n");
scanf("%c=",&x);
for (i=0;i<9;i++) //输入第一个矩阵的元素
scanf("%d ",*p+i);
printf("\n");
printf("%c=\n",x);
for (i=0;i<3;i++) //将数组以矩阵的形式显示出来
{
for (j=0;j<3;j++)
printf("%d\t",a[i][j]);
printf("\n\n");
}
printf("Please input the second matrix:\n");
scanf("%c=",&y);
for (i=0;i<9;i++) //输入第二个矩阵的元素
scanf("%d ",*q+i);
printf("\n");
printf("%c=\n",y);
for (i=0;i<3;i++) //将数组以矩阵的形式显示出来
{
for (j=0;j<3;j++)
printf("%d\t",b[i][j]);
printf("\n\n");
}
product(p,q); //调用函数计算两个矩阵的乘积
return 0;
}
int product(int (*p)[3],int (*q)[3]) //函数定义
{
int c[3][3];
int i,j;
char z;
scanf("%c=%c%c",&z,&x,&y);
printf("\n%c=\n",z);
for (i=0;i<3;i++) //计算两个矩阵的乘积
for (j=0;j<3;j++)
c[i][j]=*(*(p+i)) * *(*q+j) + *(*(p+i)+1) * *(*q+j+3) + *(*(p+i)+2) * *(*q+6);
for (i=0;i<3;i++) //输出两个矩阵的乘积
{
for (j=0;j<3;j++)
printf("%d\t",c[i][j]);
printf("\n\n");
}
return 0;
}
输入第一个矩阵(命名为A)后无法进行下一步,就像下面这样
这是怎么回事呢?