程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 題目1489:計算兩個矩陣的乘積

題目1489:計算兩個矩陣的乘積

編輯:C++入門知識

  題目1489:計算兩個矩陣的乘積時間限制:1 秒 內存限制:128 兆 特殊判題:否 提交:134 解決:25   題目描述: 計算兩個矩陣的乘積,第一個是2*3,第二個是3*2   輸入: 輸入為兩個矩陣,其中一個為2*3的矩陣,另一個為3*2的矩陣   輸出: 一個2*2的矩陣(每一個數字後都跟一個空格)   樣例輸入: 1 2 3 3 4 5 6 7 8 9 10 11樣例輸出: 52 58 100 112來源: 2012年哈爾濱工業大學計算機研究生機試真題       [cpp]  /*********************************   *   日期:2013-3-4  *   作者:SJF0115   *   題號: 九度OJ 題目1489:計算兩個矩陣的乘積  *   來源:http://ac.jobdu.com/problem.php?pid=1489  *   結果:AC   *   來源:2012年哈爾濱工業大學計算機研究生機試真題  *   總結:   **********************************/    #include<stdio.h>    #include<stdlib.h>    #include<string.h>       int Matrix[2][3];   int Matrix2[3][2];      int main () {       int i,j,k;       int row = 2,col = 3;       while(scanf("%d %d %d",&Matrix[0][0],&Matrix[0][1],&Matrix[0][2]) != EOF){           int Matrix3[2][2] = {0};           //輸入第一個矩陣            for(i = 1;i < row;i++){               for(j = 0;j < col;j++){                   scanf("%d",&Matrix[i][j]);               }           }           //輸入第二個矩陣            for(i = 0;i < col;i++){               for(j = 0;j < row;j++){                   scanf("%d",&Matrix2[i][j]);               }           }           //相乘            for(i = 0;i < row;i++){               for(j = 0;j < row;j++){                   for(k = 0;k < col;k++){                       Matrix3[i][j] += Matrix[i][k] * Matrix2[k][j];                   }               }           }                      //輸出            for(i = 0;i < row;i++){               for(j = 0;j < row;j++){                   printf("%d ",Matrix3[i][j]);               }               printf("\n");           }       }       return 0;   }     /*********************************  *   日期:2013-3-4 *   作者:SJF0115  *   題號: 九度OJ 題目1489:計算兩個矩陣的乘積 *   來源:http://ac.jobdu.com/problem.php?pid=1489 *   結果:AC  *   來源:2012年哈爾濱工業大學計算機研究生機試真題 *   總結:  **********************************/  #include<stdio.h> #include<stdlib.h> #include<string.h>   int Matrix[2][3]; int Matrix2[3][2];   int main () { int i,j,k; int row = 2,col = 3; while(scanf("%d %d %d",&Matrix[0][0],&Matrix[0][1],&Matrix[0][2]) != EOF){ int Matrix3[2][2] = {0}; //輸入第一個矩陣 for(i = 1;i < row;i++){ for(j = 0;j < col;j++){ scanf("%d",&Matrix[i][j]); } } //輸入第二個矩陣 for(i = 0;i < col;i++){ for(j = 0;j < row;j++){ scanf("%d",&Matrix2[i][j]); } } //相乘 for(i = 0;i < row;i++){ for(j = 0;j < row;j++){ for(k = 0;k < col;k++){ Matrix3[i][j] += Matrix[i][k] * Matrix2[k][j]; } } }   //輸出 for(i = 0;i < row;i++){ for(j = 0;j < row;j++){ printf("%d ",Matrix3[i][j]); } printf("\n"); } }     return 0; }         分享到: 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved