fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. // 1. Функція для створення (виділення пам'яті) динамічного 2D-масиву
  6. int** createMatrix(int rows, int cols) {
  7. // Размежовуємо потрійний вказівник, щоб дістатися до int**
  8. int **matrix = new int*[rows];
  9.  
  10. for (int i = 0; i < rows; ++i) {
  11. matrix[i] = new int[cols];
  12. }
  13. return matrix;
  14. }
  15. // 2. Функція для читання (введення) елементів матриці з клавіатури
  16. void readMatrix(int** matrix, int rows, int cols) {
  17. for (int i = 0; i < rows; ++i) {
  18. for (int j = 0; j < cols; ++j) {
  19. cin >> matrix[i][j];
  20. }
  21. }
  22. }
  23. // 3. Функція для виведення матриці на екран
  24. void printMatrix(int** matrix, int rows, int cols) {
  25. for (int i = 0; i < rows; ++i) {
  26. for (int j = 0; j < cols; ++j) {
  27. cout << setw(6) << matrix[i][j] << " "; // setw(6) рівномірно вирівнює стовпчики
  28. }
  29. cout << endl; // Перехід на новий рядок після кожного рядка матриці
  30. }
  31. }
  32. int main() {
  33. int n, m;
  34. cin>>n>>m;
  35.  
  36. // int** myMatrix = createMatrix(rows, cols);
  37. int **myMatrix = new int*[n];
  38.  
  39. for (int i = 0; i < n; ++i) {
  40. myMatrix[i] = new int[m];
  41. }
  42. readMatrix(myMatrix,n, m );
  43. // Використання...
  44. myMatrix[0][0] = 42;
  45. cout << "myMatrix[0][0] = " << myMatrix[0][0] << endl;
  46. printMatrix(myMatrix,n, m);
  47. // Звільнення пам'яті
  48. for (int i = 0; i < n; ++i) {
  49. delete[] myMatrix[i];
  50. }
  51. delete[] myMatrix;
  52.  
  53. return 0;
  54. }
  55.  
Success #stdin #stdout 0s 5320KB
stdin
4 6 4 3
4 5 6 3
9 0 2 3
stdout
myMatrix[0][0] = 42
    42      3      4      5      6      3 
     9      0      2      3      0      0 
     0      0      0      0      0      0 
     0      0      0      0      0      0