c语言初学求两个矩阵乘积问题 5

main(){inti,j,k;inta[4][3],b[3][2],c[4][2];for(i=0;i<4;i++){for(k=0;k<3;k++)scanf("%d... main()
{
int i,j,k;
int a[4][3],b[3][2],c[4][2];
for(i=0;i<4;i++)
{for(k=0;k<3;k++)
scanf("%d",&a[i][k]);
}
for(k=0;k<3;k++)
{for(j=0;j<2;j++)
scanf("%d",&b[k][j]);
}
for(i=0;i<4;i++)
{for(j=0;j<2;j++)
{c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
printf("%6d",c[i][j]);
}
printf("\n");
}
}
本人初学,请各位把求积部分用通俗易懂的加上注释 !! 谢谢!!!
展开
 我来答
ericfan256
推荐于2017-12-16 · TA获得超过344个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:139万
展开全部

若然一矩阵的列数与另一矩阵的行数相等,则可定义这两个矩阵的 乘积。 如 A 是 m×n 矩阵和 B 是 n×p矩阵,它们是乘积 AB 是一个 m×p 矩阵,其中

(AB)[i, j] = A[i, 1] * B[1, j] + A[i, 2] * B[2, j] + ... + A[i, n] * B[n, j] 对所有 i 及 j。

此乘法有如下性质:

(AB)C = A(BC) 对所有 k×m 矩阵 A, m×n 矩阵 B 及 n×p 矩阵 C ("结合律").

(A + B)C = AC + BC 对所有 m×n 矩阵 A 及 B 和 n&tiems;k 矩阵 C ("分配律")。

C(A + B) = CA + CB 对所有 m×n 矩阵 A 及 B 和 k×m 矩阵 C ("分配律")。

要注意的是:可置换性不一定成立,即有矩阵 A 及 B 使得 AB ≠ BA。

Q=M*N(Q的行数和M相同,列数和N相同)

其中,M是m1*n1矩阵,N是m2*n2矩阵。当n1=m2时有:

for(i=1;i<=m1;++i)

for(j=1;j<=n2;++j){

    Q[i][j]=0;

    for(k=1;k<=n1;++k)Q[i][j]+=M[i][k]*N[k][j];

}

淦海瑶s1
2012-03-03 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:755万
展开全部
纯数学问题,关键是
c[i][j]+=a[i][k]*b[k][j];这一句
其他的你应该明白
for(i=0;i<4;i++)
{for(k=0;k<3;k++)
scanf("%d",&a[i][k]);
}
for(k=0;k<3;k++)
{for(j=0;j<2;j++)
scanf("%d",&b[k][j]);
}
这两个是把a,b矩阵输入的,没难度理解
for(i=0;i<4;i++)
{for(j=0;j<2;j++)
{c[i][j]=0; //这个是让c赋初始值,没难度理解
for(k=0;k<3;k++) //这个循环,就是一句话,就是关键,数学公式而已
c[i][j]+=a[i][k]*b[k][j];
printf("%6d",c[i][j]);
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
炎a樱
2012-03-03
知道答主
回答量:14
采纳率:0%
帮助的人:4.8万
展开全部
for(i=0;i<4;i++)
{for(j=0;j<2;j++)
{c[i][j]=0;//给矩阵c中元素赋初值
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];//矩阵a的第i行与矩阵b的第j列相乘,结果放在矩阵c[i][j]中
printf("%6d",c[i][j]);
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式