矩陣的運算

  1 #include<iostream>
  2 using namespace std;
  3 int main() {
  4     int n, m, x, k;
  5     int A[100][100], B[100][100], C[100][100];
  6     int choice = 0;
  7 
  8 
  9     cout << "****歡迎使用矩陣運算器****" << endl;
 10     cout << "請輸入矩陣A的行數和列數:" << endl;
 11     cin >> n >> m;
 12     cout << "請輸入矩陣A:" << endl;
 13     for (int i = 0; i < n; i++)
 14     {
 15         for (int j = 0; j < m; j++)
 16         {
 17             cin >> A[i][j];
 18         }
 19 
 20     }
 21     cout << "請輸入矩陣B的行數和列數:" << endl;
 22     cin >> x >> k;
 23     cout << "請輸入矩陣B:" << endl;
 24     for (int i = 0; i < x; i++)
 25     {
 26         for (int j = 0; j < k; j++)
 27         {
 28             cin >> B[i][j];
 29         }
 30 
 31     }
 32     cout << "矩陣A爲:" << endl;
 33     for (int i = 0; i < n; i++)
 34     {
 35         for (int j = 0; j < m; j++)
 36         {
 37             cout << A[i][j] << " ";
 38         }
 39         cout << endl;
 40 
 41     }
 42     cout << "矩陣B爲:" << endl;
 43     for (int i = 0; i < x; i++)
 44     {
 45         for (int j = 0; j < k; j++)
 46         {
 47             cout << B[i][j] << " ";
 48         }
 49         cout << endl;
 50     }
 51     cout << "請選擇相應的序號使用其功能" << endl;
 52     cout << "1.矩陣相加" << endl;
 53     cout << "2.矩陣相減" << endl;
 54     cout << "3.矩陣相乘" << endl;
 55     cin >> choice;
 56     if (choice == 1 || choice == 2)
 57     {
 58         if (n != x || m != k)
 59         {
 60             cout << "運算出錯,請檢查矩陣A,B的行數列數是否相等" << endl;
 61         }
 62         else if (choice == 1)
 63         {
 64             cout << "矩陣A,B相加的結果爲:" << endl;
 65             for (int i = 0; i < n; i++)
 66             {
 67                 for (int j = 0; j < m; j++)
 68                 {
 69                     C[i][j] = A[i][j] + B[i][j];
 70                     cout << C[i][j] << " ";
 71                 }
 72                 cout << endl;
 73             }
 74         }
 75         else if (choice == 2)
 76         {
 77             cout << "矩陣A,B相減的結果爲:" << endl;
 78             for (int i = 0; i < n; i++)
 79             {
 80                 for (int j = 0; j < m; j++)
 81                 {
 82                     C[i][j] = A[i][j] - B[i][j];
 83                     cout << C[i][j] << " ";
 84                 }
 85                 cout << endl;
 86             }
 87         }
 88 
 89     }
 90     if (choice == 3)
 91     {
 92         if (m != x)
 93         {
 94             cout << "運算出錯,請檢查矩陣A的列數是否與矩陣B的行數相等" << endl;
 95         }
 96         else
 97         {
 98             int i, j;
 99             C[0][0] = 0;
100             for (i = 0; i < x; i++)
101             {
102                 for (j = 0; j < k; j++)
103                 {
104                     for (int t = 0; t < m; t++)
105                     {
106                         C[i][j] += A[i][t] * B[t][j];
107                     }
108                 }
109             }
110             cout << "矩陣A,B相乘的結果爲:" << endl;
111             for (int i = 0; i < x; i++) {
112                 for (int j = 0; j < k; j++) {
113                     cout << C[i][j] << " ";
114                 }
115                 cout << endl;
116             }
117         }
118 
119 
120     }
121 
122     return 0;
123 
124 }
相關文章
相關標籤/搜索