fork download
  1. #include<iostream>
  2.  
  3. #include<time.h>
  4. using namespace std;
  5.  
  6. void MatrAlloc(int ***a, int n, int m) {
  7. *a = new int*[n];
  8. for (int i = 0; i < n; i++) {
  9. (*a)[i] = new int[m];
  10. }
  11. }
  12. void MatrGen(int** a, int n, int m) {
  13. for (int i = 0; i < n; ++i) {
  14. for (int j = 0; j < m; ++j) {
  15. a[i][j] = rand() % 20 + 1;
  16. }
  17. }
  18. }
  19.  
  20. void MatrOutp(int** a, int n, int m) {
  21. for (int i = 0; i < n; ++i) {
  22. for (int j = 0; j < m; ++j) {
  23. cout << a[i][j] << "\t";
  24. }
  25. cout << endl;
  26. }
  27. }
  28.  
  29. int SumMatrix(int** a, int** b, int n1, int m1, int n2, int m2, int** c) {
  30. if (n1 != n2 || m1 != m2) return -1;
  31. for (int i = 0; i < n1; ++i) {
  32. for (int j = 0; j < m1; ++j) {
  33. c[i][j] = a[i][j] + b[i][j];
  34. }
  35. }
  36. }
  37.  
  38.  
  39. int MatrTransp(int** a, int n1, int m1, int** c, int n2, int m2) {
  40. if (n1 != m2 || m1 != n2) return -1;
  41. for (int i = 0; i < n1; ++i) {
  42. for (int j = 0; j < m1; ++j) {
  43. c[j][i] = a[i][j];
  44. }
  45. }
  46. }
  47.  
  48. int MatrMult(int** a, int n1, int m1) {
  49. int k;
  50. cout << "Введите k: ";
  51. cin >> k;
  52. for (int i = 0; i < n1; i++)
  53. {
  54. for (int j = 0; j < m1; j++)
  55. {
  56. a[i][j] = (a[i][j]) * k;;
  57. }
  58. }
  59. }
  60.  
  61. int main() {
  62. int ** A, ** B, ** res, ** a;
  63. int a1, a2, b1, b2, k1=0;
  64.  
  65. srand(0);
  66. cout << "Введите количество строк матрицы A: ";
  67. cin >> a1;
  68. cout << "Введите количество столбцов матрицы A: ";
  69. cin >> a2;
  70. cout << "Введите количество строк матрицы B: ";
  71. cin >> b1;
  72. cout << "Введите количество столбцов матрицы B: ";
  73. cin >> b2;
  74.  
  75. system("cls");
  76.  
  77. MatrAlloc(&A, a1, a2);
  78. MatrAlloc(&B, b1, b2);
  79. MatrGen(A, a1, a2);
  80. MatrGen(B, b1, b2);
  81. cout << "Матрица A:" << endl;
  82. MatrOutp(A, a1, a2);
  83. cout << "\nМатрица B:" << endl;
  84. MatrOutp(B, b1, b2);
  85.  
  86. MatrAlloc(&res, a1, a2);
  87. cout << "\nМатрица C (A+B):" << endl;
  88. SumMatrix(A, B, a1, a2, b1, b2, res);
  89. MatrOutp(res, b1, b2);
  90.  
  91. MatrAlloc(&a, a2, a1);
  92. MatrTransp(res, b1, b2, a, b2, b1);
  93. cout << "\nМатрица C(t):" << endl;
  94. MatrOutp(a, b2, b1);
  95.  
  96. cout << "\nМатрица k*A:" << endl;
  97. MatrMult(A, a1, a2);
  98. MatrOutp(A, a1, a2);
  99. printf("\n");
  100. system("pause");
  101. return 0;
  102. }
Runtime error #stdin #stdout #stderr 0s 15240KB
stdin
5
4
7
3
stdout
Введите количество строк матрицы A: Введите количество столбцов матрицы A: Введите количество строк матрицы B: Введите количество столбцов матрицы B: Матрица A:
4	7	18	16	
14	16	7	13	
10	2	3	8	
11	20	4	7	
1	7	13	17	

Матрица B:
12	9	8	
10	3	11	
3	4	8	
16	10	3	
3	19	10	
8	14	17	
12	3	10	

Матрица C (A+B):
0	0	0	
0	0	0	
0	0	0	
0	0	0	
0	0	0	
stderr
sh: 1: cls: not found