nvnnaidenov

Zad66

Oct 28th, 2021
476
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. void ReadMat(int, int, int[][30]);
  7. void PrintMat(int, int, int[][30]);
  8. void MultiMat(int, int, int, int[][30], int[][30], int[][30]);
  9.  
  10. int main()
  11. {
  12.     int n;
  13.     int m;
  14.     int k;
  15.     int a[10][30];
  16.     int b[20][30];
  17.     int c[10][30];
  18.  
  19.     cout << "n = ";
  20.     cin >> n;
  21.     if(!cin)
  22.     {
  23.         cout << "Error, bad input!" << endl;
  24.         return 1;
  25.     }
  26.     if(n < 1 || n > 10)
  27.     {
  28.         cout << "Error, incorrect input!" << endl;
  29.         return 1;
  30.     }
  31.     cout << "m = ";
  32.     cin >> m;
  33.     if(!cin)
  34.     {
  35.         cout << "Error, bad input!" << endl;
  36.         return 1;
  37.     }
  38.     if(m < 1 || m > 30)
  39.     {
  40.         cout << "Error, incorrect input!" << endl;
  41.         return 1;
  42.     }
  43.     cout << "k = ";
  44.     cin >> k;
  45.     if(!cin)
  46.     {
  47.         cout << "Error, bad input!" << endl;
  48.         return 1;
  49.     }
  50.     if(k < 1 || k > 30)
  51.     {
  52.         cout << "Error, incorrect input!" << endl;
  53.         return 1;
  54.     }
  55.  
  56.     ReadMat(n, m, a);
  57.     cout << endl;
  58.     PrintMat(n, m, a);
  59.     cout << endl;
  60.     ReadMat(m, k, b);
  61.     cout << endl;
  62.     PrintMat(m, k, b);
  63.     cout << endl;
  64.     MultiMat(n, m, k, a, b,c);
  65.     PrintMat(n, k, c);
  66.  
  67.     return 0;
  68. }
  69.  
  70. void ReadMat(int n, int m, int a[][30])
  71. {
  72.     for(int i = 0; i <= n - 1; i++)
  73.     {
  74.         for(int j = 0; j <= m - 1; j++)
  75.         {
  76.             cout << "[" << i << "][" << j << "] = ";
  77.             cin >> a[i][j];
  78.         }
  79.     }
  80. }
  81.  
  82. void PrintMat(int n, int m, int a[][30])
  83. {
  84.     for(int i = 0; i <= n - 1; i++)
  85.     {
  86.         for(int j = 0; j <= m - 1; j++)
  87.         {
  88.             cout << setw(5) << a[i][j];
  89.         }
  90.         cout << endl;
  91.     }
  92. }
  93.  
  94. void MultiMat(int n, int m, int k, int a[][30], int b[][30], int c[][30])
  95. {
  96.     for(int i = 0; i <= n - 1; i++)
  97.     {
  98.         for(int j = 0; j <= m - 1; j++)
  99.         {
  100.             c[i][j] = 0;
  101.             for(int p = 0; p <= m - 1; p++)
  102.             {
  103.                 c[i][j] += a[i][p] * b[p][j];
  104.             }
  105.         }
  106.     }
  107. }
  108.  
RAW Paste Data