fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. // 1. Функція для створення (виділення пам'яті) динамічного 2D-масиву
  6. int** createMatrix(int rows, int cols) {
  7. // 1. Виділяємо в динамічній пам'яті (Heap) одновимірний масив вказівників на кожен рядок
  8. int** matrix = new int*[rows];
  9.  
  10. // 2. У циклі виділяємо пам'ять під масив елементів для кожного окремого рядка
  11. for (int i = 0; i < rows; ++i) {
  12. matrix[i] = new int[cols]; // Виділення cols осередків типу int для i-го рядка
  13. }
  14.  
  15. // 3. Повертаємо адреси створеної матриці у викликаючий код (наприклад, у main)
  16. return matrix;
  17. }
  18. // 2. Функція для читання (введення) елементів матриці з клавіатури
  19. void readMatrix(int** matrix, int rows, int cols) {
  20. for (int i = 0; i < rows; ++i) {
  21. for (int j = 0; j < cols; ++j) {
  22. cin >> matrix[i][j];
  23. }
  24. }
  25. }
  26. void readVector(int *x,int n){
  27. for (int i=0;i<n;i++){
  28. cin>>x[i];
  29. }
  30. }
  31. // 3. Функція для виведення матриці на екран
  32. void printMatrix(int** matrix, int rows, int cols) {
  33. for (int i = 0; i < rows; ++i) {
  34. for (int j = 0; j < cols; ++j) {
  35. cout << setw(6) << matrix[i][j] << " "; // setw(6) рівномірно вирівнює стовпчики
  36. }
  37. cout << endl; // Перехід на новий рядок після кожного рядка матриці
  38. }
  39. }
  40.  
  41. int** create(int n,int m){
  42. int **myMatrix2 = new int*[n];
  43. for (int i = 0; i < n; ++i) {
  44. myMatrix2[i] = new int[m];
  45. }
  46. return myMatrix2;
  47. }
  48. int* createA(int n){
  49. int *x=new int[n];
  50. return x;
  51. }
  52. int main() {
  53. int n, m;
  54. cin>>n>>m;
  55. int *v1=createA(n);
  56.  
  57. int *v2=createA(n);
  58.  
  59. int **myMatrix=create(n,m);
  60.  
  61. int **myMatrix2 =create(n,m);
  62.  
  63. //введення матриці з клавіатури
  64. readMatrix(myMatrix,n,m);
  65. readMatrix(myMatrix2,n,m);
  66. // Вивід на екран
  67. printMatrix(myMatrix,n,n);
  68. printMatrix(myMatrix2,n,n);
  69. // Звільнення пам'яті
  70. for (int i = 0; i < n; ++i) {
  71. delete[] myMatrix[i];
  72. }
  73. delete[] myMatrix;
  74.  
  75. readVector(v1,n);
  76. readVector(v2,n);
  77.  
  78. return 0;
  79. }
  80.  
  81.  
  82.  
Success #stdin #stdout 0s 5320KB
stdin
2 2
1 2 
2 3
56 4
5
3

-1 -1
-5 -5
stdout
     1      2 
     2      3 
    56      4 
     5      3