矩阵的运算

  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 }
相关文章
相关标签/搜索