6.9 输入一个3×4矩阵A和一个4×3矩阵B,计算并输出AXB的结果。要求:代码中用MxN和NxM代替矩阵的维数。

测试用例1:

#define M 5
#define N 3
int A[M][N]={{5,3,2}, {2,3,5}, {4,4,4}, {3,2,7}, {6,5,2}};
int B[N][M]={{5,3,2,4,0}, {2,3,5,0,4}, {0,4,4,4,3}};
31 32 33 28 18
16 35 39 28 27
28 40 44 32 28
19 43 44 40 29
40 41 45 32 26

#include<stdio.h>
#define M 5
#define N 3
int A[M][N] = { {5,3,2},{2,3,5},{4,4,4},{3,2,7},{6,5,2} };
int B[N][M] = { {5,3,2,4,0},{2,3,5,0,4} ,{0,4,4,4,3} };

int main(void)
{
  int s[M][M] = { 0 };
  for (int i = 0; i < M; i++)  // A的行,同时代表 结果矩阵的行
  {
    for (int j_b = 0; j_b < M; j_b++)
    {
      for (int j = 0; j < N; j++)  // A的列,同时代表B的行
      {
        s[i][j_b] += A[i][j] * B[j][j_b];
      }
    }
  }
  for (int i = 0; i < M; i++)  // 输出
  {
    for (int j = 0; j < M; j++)
      printf("%-3d", s[i][j]);
    printf("\n");
  }

  return 0;
}

 

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒