矩阵倒置和相乘,没调用函数的编出来了,可需要函数调用的还是不会啊
从键盘输入一个4*4的矩阵A,编程求(1).矩阵A的两对角线元素之和;
(2).矩阵A的转置;
(3).从键盘输入另一个4*4的矩阵B,计算矩阵A和B的乘积.
以上三个问题要求用函数编写.
int main()
{
int a[4][3],b[3][4];
int c[4][4];//保存两矩阵的乘积
int m,n;
int i=0,j=0;
printf("请输入4*3矩阵:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
printf("\n");
}
printf("输出原矩阵\n");
for(i=0;i<4;i++)
{ for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
//将原4*3矩阵倒置
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
b[j][i]=a[i][j];
}
printf("将倒置后的矩阵输出\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
//计算4*3矩阵和3*4矩阵的乘积,c[i][j]=a[i][1]*b[1][j]+.....+a[i][n]*b[n][j]
for(m=0;m<4;m++)
for(n=0;n<4;n++)
{
c[m][n]=0; //初始化矩阵
for(i=0;i<3;i++) //求c[m][n]的值
{
c[m][n]=c[m][n]+a[m][i]*b[i][n];
}
}
//将矩阵的乘积输出
printf("将两矩阵的乘积输出\n");
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
}
关于不用函数的我还有些问题,为什这样输入矩阵不行,我发现a[i][j]的输出永远都是1
int a[4][4],b[4][4];
int i=0,j=0;
int n;
printf("请输入矩阵:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=scanf("%d",&n);printf("%d\n",n); //发现a[i][j]的输出永远都是1
printf("%d\n",a[i][j]);
}
printf("\n");
}
}
第二个问题
我希望是按照矩阵的形式输入而不是连续敲下12个数字,请问怎么编程
第三个问题,
这用函数编写我还是不会啊,我对二维数组和函数参数了解的不够深入