Advertisement
wrahq

[ćw 2 / 3] !!! Mnożenie macierzy

Apr 23rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. Napisz program do mnozenia dwóch macierzy  o dowolnym rozmiarze.
  2. Sprawdzaj, czy mnozenie jest mozliwe!
  3.    
  4.    
  5. #include <iostream>
  6. #include <iomanip>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.   int **A,**B,**C,m,n,p,i,j,k,s;
  13.  
  14.   // odczytujemy wymiary macierzy
  15.  
  16.   cin >> m >> n >> p;
  17.  
  18.   // tworzymy macierze o odpowiednich rozmiarach
  19.  
  20.   A = new int * [m];
  21.   B = new int * [n];
  22.   C = new int * [m];
  23.  
  24.   for(i = 0; i < m; i++)
  25.   {
  26.     A[i] = new int[n];
  27.     C[i] = new int[p];
  28.   }
  29.  
  30.   for(i = 0; i < n; i++) B[i] = new int[p];
  31.  
  32.   // odczytujemy dane dla macierzy A
  33.  
  34.   for(i = 0; i < m; i++)
  35.     for(j = 0; j < n; j ++) cin >> A[i][j];
  36.  
  37.   // odczytujemy dane dla macierzy B
  38.  
  39.   for(i = 0; i < n; i++)
  40.     for(j = 0; j < p; j++) cin >> B[i][j];
  41.  
  42.   cout << endl;
  43.  
  44.   // mnozymy macierz A przez B i wynik umieszczamy w C
  45.  
  46.   for(i = 0; i < m; i++)
  47.     for(j = 0; j < p; j++)
  48.     {
  49.       s = 0;
  50.       for(k = 0; k < n; k++) s += A[i][k] * B[k][j];
  51.       C[i][j] = s;
  52.     }
  53.  
  54.   // wyprowadzamy wynik mnozenia w C
  55.  
  56.   cout <<  "C = A x B:\n";
  57.  
  58.   for(i = 0; i < m; i++)
  59.   {
  60.     for(j = 0; j < p; j++) cout << setw(6) << C[i][j];
  61.     cout << endl;
  62.   }
  63.  
  64.   // zwalniamy pamiec zajeta przez macierze
  65.  
  66.   for(i = 0; i < m; i++)
  67.   {
  68.     delete [] A[i];
  69.     delete [] C[i];
  70.   }
  71.  
  72.   for(i = 0; i < n; i++) delete [] B[i];
  73.   delete [] A;
  74.   delete [] B;
  75.   delete [] C;
  76.  
  77.   return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement