编写一段程序,求4行3列矩阵 和 3行 4 列矩阵的乘积。各构成元素的值从键盘输入。
1 回答
已采纳

guozhchun
TA贡献103条经验 获得超76个赞
#include <stdio.h> int main() { int a[4][3]; // 第一个矩阵,4行3列 int b[3][4]; // 第二个矩阵,3行4列 int c[4][4]; // 存放计算结果的矩阵,4行4列 // 读取第一个矩阵的数 printf("please input the number of the first matrix:\n"); for (int i = 0; i < 4; i++) for (int j = 0; j < 3; j++) scanf("%d", &a[i][j]); // 读取第二矩阵的数 printf("please input the number of the second matrix:\n"); for (int i = 0; i < 3; i++) for (int j = 0; j < 4; j++) scanf("%d", &b[i][j]); /* * 计算矩阵相乘。 * 矩阵相乘的规则:第一个矩阵的第 i 行与第二个矩阵的第 j 列进行向量相乘得到结果矩阵的第 i 行第 j 的值 */ for (int i = 0; i < 4; i++) // 结果矩阵的行,也可以算是第一个矩阵的行 { for (int j = 0; j < 4; j++) // 结果矩阵的列,也可以算是第二个矩阵的列 { int sum = 0; for (int k = 0; k < 3; k++) // 第一个矩阵的列,同时也是第二个矩阵的行 sum += a[i][k] * b[k][j]; // 第一个矩阵的第 i 行与第二个矩阵的第 j 列的向量相乘 c[i][j] = sum; } } // 输出结果 printf("the result is:\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) printf("%d ", c[i][j]); printf("\n"); } return 0; }
- 1 回答
- 0 关注
- 1406 浏览
添加回答
举报
0/150
提交
取消