Vla_DOS

Untitled

Feb 20th, 2022
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.32 KB | None | 0 0
  1. #include<time.h>
  2. #include <iomanip>
  3. #include <malloc.h>
  4. using namespace std;
  5.  
  6. int** Create(int row, int col)
  7. {
  8.     int** arr;
  9.     arr = new int* [row];
  10.     for (int i = 0; i < row; i++)
  11.     {
  12.         arr[i] = new int[col];
  13.     }
  14.     return arr;
  15. }
  16.  
  17. void Fill(int** arr, int height, int width)
  18. {
  19.     for (int i = 0; i < height; i++)
  20.     {
  21.         for (int j = 0; j < width; j++)
  22.         {
  23.             arr[i][j] = rand() % 100;
  24.         }
  25.     }
  26. }
  27.  
  28. void Show(int** arr, int height, int width)
  29. {
  30.     for (int i = 0; i < height; i++)
  31.     {
  32.         for (int j = 0; j < width; j++)
  33.         {
  34.             printf("%3d", arr[i][j]);
  35.         }
  36.         printf("\n");
  37.     }
  38. }
  39.  
  40. void Del(int** arr, int row)
  41. {
  42.     for (int i = 0; i < row; i++)
  43.     {
  44.         delete[]arr[i];
  45.     }
  46.     delete[]arr;
  47. }
  48. int** Add_Col(int** arr, int& height, int& width)
  49. {
  50.     int** arr_1;
  51.     int pos;
  52.     printf("Enter number of column you want add: ");
  53.     scanf("%d", &pos);
  54.     if (pos > width)
  55.     {
  56.         printf("Wrong choce!\n");
  57.         return 0;
  58.     }
  59.     else
  60.     {
  61.         arr_1 = Create(height, width + 1);
  62.         for (int i = 0; i < height; i++)
  63.         {
  64.             for (int j = 0; j < pos; j++)
  65.             {
  66.                 arr_1[i][j] = arr[i][j];
  67.             }
  68.         }
  69.         for (int i = 0; i < height; i++)
  70.         {
  71.             for (int j = 0; j < width - pos; j++)
  72.             {
  73.                 arr_1[i][j + pos + 1] = arr[i][j + pos];
  74.             }
  75.  
  76.         }
  77.         width++;
  78.         for (int i = 0; i < height; i++)
  79.         {
  80.             for (int j = pos; j < pos + 1; j++)
  81.             {
  82.                 arr_1[i][j] = 5 -  rand() % 10 -10;
  83.             }
  84.  
  85.         }
  86.         for (int i = 0; i < height; i++) delete[] arr[i];
  87.         delete[] arr;
  88.         arr = arr_1;
  89.         return arr;
  90.     }
  91. }
  92.  
  93.  
  94. int** Delete_Row(int** a, int& height, int width, int numberToDel)
  95. {
  96.     int firstNumberToDel = a[0][0], i_num = 0;
  97.     for (int i = 0; i < height; i++)
  98.     {
  99.         for (int j = 0; j < width; j++)
  100.         {
  101.             if (a[i][j] == numberToDel)
  102.             {
  103.                 i_num = i;
  104.                 firstNumberToDel = a[i][j];
  105.             }
  106.         }
  107.     }
  108.  
  109.     delete[] a[i_num];
  110.     a[i_num] = nullptr;
  111.     for (int i = 0; i < height; i++)
  112.     {
  113.         if (a[i] != nullptr)
  114.         {
  115.             for (int j = 0; j < width; j++)
  116.                 printf("%d  ", a[i][j]);
  117.  
  118.             printf("\n");
  119.         }
  120.     }
  121.  
  122.     for (int i = 0; i < height; i++) delete[] a[i];
  123.     delete[] a;
  124.     return a;
  125. }
  126.  
  127. int main()
  128. {
  129.     srand(time(NULL));
  130.     int width, height;
  131.     int numberToDel;
  132.     const char* line = "_____________________________";
  133.     printf("Enter width: ");
  134.     scanf("%d", &width);
  135.  
  136.     printf("Enter hight: ");
  137.     scanf("%d", &height);
  138.     printf("\n");
  139.     int** arr;
  140.     arr = Create(height, width);
  141.     Fill(arr, height, width);
  142.     Show(arr, height, width);
  143.     printf("%s\nAdding column\n%s\n", line, line);
  144.     arr = Add_Col(arr, height, width);
  145.     Show(arr, height, width);
  146.     printf("%s\nDelete line\n%s\n", line, line);
  147.     printf("Enter a number to delete the string: ");
  148.     scanf("%d", &numberToDel);
  149.     printf("%s\n", line);
  150.     arr = Delete_Row(arr, height, width, numberToDel);
  151.  
  152.     Del(arr, height);
  153.    
  154.     return 0;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment