Advertisement
35657

Untitled

Apr 27th, 2024
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void print(int** arr, int row, int col) {
  6.     for (int i = 0; i < row; i++) {
  7.         for (int j = 0; j < col; j++) {
  8.             cout << arr[i][j] << " ";
  9.         }
  10.         cout << endl;
  11.     }
  12.     cout << endl;
  13. }
  14.  
  15. void fill(int** arr, int row, int col) {
  16.     for (int i = 0; i < row; i++) {
  17.         for (int j = 0; j < col; j++) {
  18.             arr[i][j] = rand() % 10;
  19.         }
  20.     }
  21. }
  22.  
  23.  
  24. void transpose_array(int**& arr, int& row, int& col) {
  25.     int** temp = new int* [col];
  26.     for (int i = 0; i < col; i++) {
  27.         temp[i] = new int[row];
  28.         for (int j = 0; j < row; j++) {
  29.             temp[i][j] = arr[j][i];
  30.         }
  31.     }
  32.     for (int i = 0; i < row; i++) {
  33.         delete[] arr[i];
  34.     }
  35.     delete[] arr;
  36.     arr = temp;
  37.     int buf = row;
  38.     row = col;
  39.     col = buf;
  40. }
  41.  
  42.  
  43. // 2 вариант
  44. //int** transpose_array(int** arr, int& row, int& col) {
  45. //    int** temp = new int* [col];
  46. //    for (int i = 0; i < col; i++) {
  47. //        temp[i] = new int[row];
  48. //        for (int j = 0; j < row; j++) {
  49. //            temp[i][j] = arr[j][i];
  50. //        }
  51. //    }
  52. //    for (int i = 0; i < row; i++) {
  53. //        delete[] arr[i];
  54. //    }
  55. //    delete[] arr;
  56. //    int buf = row;
  57. //    row = col;
  58. //    col = buf;
  59. //    return temp;
  60. //}
  61.  
  62. int main() {
  63.     setlocale(LC_ALL, "ru");
  64.  
  65.     srand(time(NULL));
  66.  
  67.     int row = 6, col = 8;
  68.  
  69.     int** arr = new int* [row];
  70.  
  71.     for (int i = 0; i < row; i++) {
  72.         arr[i] = new int[col];
  73.     }
  74.  
  75.     fill(arr, row, col);
  76.  
  77.     print(arr, row, col);
  78.  
  79.     transpose_array(arr, row, col);
  80.  
  81.     // 2 вариант
  82.     //arr = transpose_array(arr, row, col);
  83.  
  84.     print(arr, row, col);
  85.  
  86.     for (int i = 0; i < row; i++) {
  87.         delete[] arr[i];
  88.     }
  89.     delete[] arr;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement