请教一道C语言题目
以下程序是将矩阵a,b的乘积存入矩阵c中并按矩阵形式输出,请填空mian(){inta[3][2]={2,-1,-4,0,3,1};intb[2][2]={7,-9,-8...
以下程序是将矩阵a,b的乘积存入矩阵c中并按矩阵形式输出,请填空
mian()
{
int a[3][2]={2,-1,-4,0,3,1};
int b[2][2]={7,-9,-8,10};
int i,j,k,s,c[3][2];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{
for(【1】;k<2;k++) /*k=s=0*/
s+=【2】; /*a[i][k]*b[k][j]*/
c[i][j]=s;
}
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%6d",c[i][j]);
printf("\n");
}
}
/**/内为书后的答案但我没看懂。请问第二个空格内为什么填
a[i][k]*a[k][j],到底不同的矩阵是如何相乘的? 展开
mian()
{
int a[3][2]={2,-1,-4,0,3,1};
int b[2][2]={7,-9,-8,10};
int i,j,k,s,c[3][2];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{
for(【1】;k<2;k++) /*k=s=0*/
s+=【2】; /*a[i][k]*b[k][j]*/
c[i][j]=s;
}
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%6d",c[i][j]);
printf("\n");
}
}
/**/内为书后的答案但我没看懂。请问第二个空格内为什么填
a[i][k]*a[k][j],到底不同的矩阵是如何相乘的? 展开
2个回答
展开全部
矩阵相乘是行乘列之和
比如矩阵
1,2,3
4,5,6 *
7,8,9
----------
9,8,7
6,5,4 =
3,2,1
-----------
1*9+2*6+3*3,1*8+2*5+3*2,1*7+2*4+3*1
4*9+5*6+6*3,4*8+5*5+6*2,4*3+5*2+6*1
7*9+8*8+9*7,7*8+8*5+9*2,7*7+8*4+9*1
----------------------------------------
也就是第一个矩阵的行与第二个矩阵的列的对应项的积之和
第一个矩阵的第x行与第二个矩阵的第y列的对应项的积之和就放到结果矩阵的第x行第y列的位置
比如矩阵
1,2,3
4,5,6 *
7,8,9
----------
9,8,7
6,5,4 =
3,2,1
-----------
1*9+2*6+3*3,1*8+2*5+3*2,1*7+2*4+3*1
4*9+5*6+6*3,4*8+5*5+6*2,4*3+5*2+6*1
7*9+8*8+9*7,7*8+8*5+9*2,7*7+8*4+9*1
----------------------------------------
也就是第一个矩阵的行与第二个矩阵的列的对应项的积之和
第一个矩阵的第x行与第二个矩阵的第y列的对应项的积之和就放到结果矩阵的第x行第y列的位置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询