计算机小白,正在自学c语言,学到数组,其中有一道题不会做,请大家帮一下忙,谢谢了^ _ ^ :

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

阳光下1230
浏览 1380回答 1
1回答

guozhchun

#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; }
打开App,查看更多内容
随时随地看视频慕课网APP