2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 计算两个矩阵乘积(两种方式实现)(C语言)

计算两个矩阵乘积(两种方式实现)(C语言)

时间:2021-12-19 05:10:54

相关推荐

计算两个矩阵乘积(两种方式实现)(C语言)

题目描述

计算两个矩阵的乘积,第一个是 2 * 3,第二个是 3 * 2

输入

输入为两个矩阵,其中一个为 2 * 3 的矩阵,另一个为 3 * 2 的矩阵

输出

一个 2 * 2 的矩阵(每一个数字后都跟一个空格)

样例输入

1 2 33 4 56 78 910 11

样例输出

52 58100 112

矩阵乘法定义

方法一(循环实现)

int i,j,k;int matrix_2_3[2][3];int matrix_3_2[3][2];int result[2][2];printf("请为第一个矩阵赋值:\n");for(i=0; i<2; i++){for(j=0; j<3; j++){scanf("%d",&matrix_2_3[i][j]);}}printf("请为第二个矩阵赋值:\n");for(i=0; i<3; i++){for(j=0; j<2; j++){scanf("%d",&matrix_3_2[i][j]);}}//三层循环计算两矩阵相乘for(i=0; i<2; i++){for(j=0; j<2; j++) //注意条件,这段代码块是为result数组计算并赋值{int temp = 0;for(k=0; k<3; k++){temp += matrix_2_3[i][k] * matrix_3_2[k][j];}result[i][j] = temp;}}printf("两矩阵相乘后:\n");for(i=0; i<2; i++){for(j=0; j<2; j++){printf("%d ",result[i][j]);}printf("\n");}

方法二(逐个计算)

int a1, b1, c1;int d1, e1, f1;int a2, b2;int c2, d2;int e2, f2;int a, b;int c, d;while(scanf("%d%d%d%d%d%d",&a1,&b1,&c1,&d1,&e1,&f1)!=EOF&&scanf("%d%d%d%d%d%d",&a2,&b2,&c2,&d2,&e2,&f2)!=EOF){a = a1*a2 + b1*c2 + c1*e2;b = a1*b2 + b1*d2 + c1*f2;c = d1*a2 + e1*c2 + f1*e2;d = d1*b2 + e1*d2 + f1*f2;printf("%d %d \n%d %d \n",a ,b ,c ,d);}

注意:此方式较为死板,当矩阵不大时可以使用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。