Ex5_5.cpp
上传用户:wuzhousb
上传日期:2022-07-12
资源大小:380k
文件大小:1k
源码类别:

书籍源码

开发平台:

Visual C++

  1. //【例5.5】矩阵运算:矩阵转置与矩阵相乘。
  2. #include <iostream>
  3. #include <iomanip>
  4. using namespace std;
  5. void inverse(int [3][6], int [6][3]);
  6. void multi(int [6][3], int [3][4], int [6][4]);
  7. void output(int [6][4]);
  8. int main(){
  9.     int middle[6][3], result[6][4];
  10.     int matrix1[3][6]={8,10,12,23,1,3,5,7,9,2,4,6,34,45,56,2,4,6};   
  11.     int matrix2[3][4]={3,2,1,0,-1,-2,9,8,7,6,5,4};
  12. inverse(matrix1,middle);
  13.    multi(middle,matrix2,result);
  14.     output(result);
  15. return 0;
  16. }
  17. void inverse(int matrix1[3][6],int middle[6][3]){            
  18.     int i,j;
  19.     for (i=0;i<3;i++)
  20.       for (j=0;j<6;j++)
  21.         middle[j][i]=matrix1[i][j];                           
  22.     return;                                                      
  23. }
  24. void multi(int middle[6][3],int matrix2[3][4],int result[6][4]){                                                                    
  25.     int i,j,k;
  26.     for (i=0;i<6;i++){
  27.       for (j=0;j<4;j++){
  28.         result[i][j] = 0;
  29.         for (k=0;k<3;k++)
  30.           result[i][j]+=middle[i][k]*matrix2[k][j];
  31.       }
  32.     }
  33.     return;
  34. }
  35. void output(int result[6][4]){
  36.     int i,j;
  37. cout <<"result"<<'n';
  38.     for (i=0;i<6;i++){
  39.       for (j=0;j<4;j++)
  40.         cout <<setw(6)<<result[i][j];
  41.       cout<<'n';
  42.     }
  43.     return;                                                       
  44. }