2020年1月11日 星期六

3x3 矩陣乘法

題目:
輸入兩個3X3矩陣後輸出兩矩陣相乘結果。
輸入:兩個3X3矩陣(整數)。
輸出: 一個3X3矩陣,未滿3位數須補0。
  (ex : 1 → 001 , 12→ 012)

範例輸出:













解題思路:
可以先用紙筆模擬矩陣乘法,觀察在每一次相乘相加中哪些變動、哪些不變,照著實作就好了。

程式碼:
#include <stdio.h>

int main()
{
 int matrix_1[3][3], matrix_2[3][3], result[3][3] = { 0 }, temp;
 printf("The first matrix:\n");
 for (int i = 0; i < 3; i++)
 {
  for (int j = 0; j < 3; j++)
   scanf_s("%d", &matrix_1[i][j]);
 }
 printf("The second matrix:\n");
 for (int i = 0; i < 3; i++)
 {
  for (int j = 0; j < 3; j++)
   scanf_s("%d", &matrix_2[i][j]);
 }
 printf("The mutiple result is:\n");
 for (int i = 0; i < 3; i++)
 {
  for (int j = 0; j < 3; j++)
  {
   temp = 0;
   for (int k = 0; k < 3; k++)
   {
    temp += matrix_1[i][k] * matrix_2[k][j];
   }
   result[i][j] = temp;
  }
 }
 for (int i = 0; i < 3; i++)
 {
  for (int j = 0; j < 3; j++)
   printf("%03d ", result[i][j]);
  printf("\n");
 }
 return 0;
}

沒有留言:

張貼留言