Advertisement
Solingen

z15.1.cpp

Dec 22nd, 2024
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     int m, n;
  7.     cout << "Размеры матрицы A (m x n): ";
  8.     cin >> m >> n;
  9.  
  10.     double** A = new double*[m];
  11.     for(int i = 0; i < m; i++)
  12.     {
  13.         A[i] = new double[n];
  14.     }
  15.  
  16.     // Считываем A
  17.     for(int i = 0; i < m; i++)
  18.     {
  19.         for(int j = 0; j < n; j++)
  20.         {
  21.             cin >> A[i][j];
  22.         }
  23.     }
  24.  
  25.     // Выводим A^T (n x m)
  26.     cout << "A^T:\n";
  27.     for(int j = 0; j < n; j++)
  28.     {
  29.         for(int i = 0; i < m; i++)
  30.         {
  31.             cout << A[i][j] << " ";
  32.         }
  33.         cout << endl;
  34.     }
  35.  
  36.     // Теперь матрица B (n x p)
  37.     int p;
  38.     cout << "Размер p для B (B будет n x p): ";
  39.     cin >> p;
  40.  
  41.     double** B = new double*[n];
  42.     for(int i = 0; i < n; i++)
  43.     {
  44.         B[i] = new double[p];
  45.     }
  46.     // Считываем
  47.     for(int i = 0; i < n; i++)
  48.     {
  49.         for(int j = 0; j < p; j++)
  50.         {
  51.             cin >> B[i][j];
  52.         }
  53.     }
  54.  
  55.     // Результат C = A x B => (m x p)
  56.     double** C = new double*[m];
  57.     for(int i = 0; i < m; i++)
  58.     {
  59.         C[i] = new double[p];
  60.     }
  61.  
  62.     for(int i = 0; i < m; i++)
  63.     {
  64.         for(int j = 0; j < p; j++)
  65.         {
  66.             C[i][j] = 0.0;
  67.             for(int k = 0; k < n; k++)
  68.             {
  69.                 C[i][j] += A[i][k] * B[k][j];
  70.             }
  71.         }
  72.     }
  73.  
  74.     cout << "A x B:\n";
  75.     for(int i = 0; i < m; i++)
  76.     {
  77.         for(int j = 0; j < p; j++)
  78.         {
  79.             cout << C[i][j] << " ";
  80.         }
  81.         cout << endl;
  82.     }
  83.  
  84.     // Очистка
  85.     for(int i = 0; i < m; i++) delete[] A[i];
  86.     delete[] A;
  87.     for(int i = 0; i < n; i++) delete[] B[i];
  88.     delete[] B;
  89.     for(int i = 0; i < m; i++) delete[] C[i];
  90.     delete[] C;
  91.  
  92.     return 0;
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement