fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. void matrix (double **A, int n, int m, int z, double **B, double **C) {
  6. double p = 0;
  7. for (int i = 0; i < n; i++) {
  8. for (int j = 0 ; j < z; j++) {
  9. for(int k = 0; k < m; k++) {
  10. p += A[i][k]*B[k][j];
  11. }
  12. C[i][j] = p;
  13. p = 0;
  14. cout << C[i][j] << " ";
  15. }
  16. cout << endl;
  17. }
  18. }
  19.  
  20.  
  21. int main() {
  22. int n, m, w, z;
  23.  
  24. cin >> n; // кол-во строк в матрице А
  25. cin >> m; // кол-во столбцов в матрице А
  26. cin >> w; // кол-во строк в матрице В
  27. cin >> z; // кол-во столбцов в матрице А
  28.  
  29. if (m==w) {
  30.  
  31. double **A = new double* [n];
  32. for (int i = 0; i < n; i++)
  33. {
  34. A[i] = new double [m];
  35. }
  36.  
  37. cout << "матрица А:" << endl;
  38. for (int i = 0; i < n; i++) {
  39. for (int j = 0 ; j < m; j++){
  40. cin >> A[i][j];
  41. cout << A[i][j] << " ";
  42. }
  43. cout << endl;
  44. }
  45.  
  46. double **B = new double* [w];
  47. for (int i = 0; i < w; i++)
  48. {
  49. B[i] = new double [z];
  50. }
  51.  
  52. cout << "матрица B:" << endl;
  53. for (int i = 0; i < w; i++){
  54. for (int j = 0 ; j < z ; j++){
  55. cin >> B[i][j];
  56. cout << B[i][j] << " ";
  57. }
  58. cout << endl;
  59. }
  60.  
  61. double **C = new double* [n];
  62. for (int i = 0; i < n; i++)
  63. {
  64. C[i] = new double [z];
  65. }
  66.  
  67. cout << "Произведение матриц:" << endl;
  68. matrix(A, n, m, z, B, C);
  69.  
  70. }
  71.  
  72. else {
  73. cout << "Перемножить данные матрицы невозможно" << endl;
  74. }
  75.  
  76. return 0;
  77. }
Success #stdin #stdout 0s 4256KB
stdin
2 2 2 2 
stdout
матрица А:
0  0  
0  0  
матрица B:
0  0  
0  0  
Произведение матриц:
0  0  
0  0