Advertisement
Usow_Maxim

Lab_3_7

Nov 1st, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <windows.h>
  5.  
  6. int InputInteger(){
  7.     char arr[5];
  8.     int value;
  9.     while(true){
  10.         scanf("%s", arr);
  11.         value = (atoi(arr))? atoi(arr) : 0;
  12.         if (value > 0)
  13.             break;
  14.         else
  15.             printf("Введите n > 0: ");
  16.     }
  17.     return value;
  18. }
  19.  
  20. void swap(int *xp, int *yp){
  21.     int temp = *xp;
  22.     *xp = *yp;
  23.     *yp = temp;
  24. }
  25.  
  26. int main()
  27. {
  28.     SetConsoleCP(1251);
  29.     SetConsoleOutputCP(1251);
  30.  
  31.     printf("Введите размер массива по X: ");
  32.     int xSize = InputInteger();
  33.     printf("Введите размер массива по Y: ");
  34.     int ySize = InputInteger();
  35.  
  36.     int** arr = new int*[ySize];
  37.     for(int i = 0; i < ySize; i++)
  38.         arr[i] = new int[xSize];
  39.     for(int i = 0; i < ySize; i++)
  40.         for(int j = 0; j < xSize; j++)
  41.             arr[i][j] = 0;
  42.     bool isFour = false;
  43.     do {
  44.         system("cls");
  45.         printf("1.Ввод элементов массива.\n2.Обработка двумерного массива.\n3.Вывод двумерного массива на экран.\n4.Выход.\nВвод: ");
  46.         switch(InputInteger()){
  47.             case 1:
  48.                 system("cls");
  49.                 printf("1.Ручное заполнение.\n2.Рандомное заполнение.\nВвод: ");
  50.                 switch(InputInteger()){
  51.                     case 1:
  52.                         system("cls");
  53.                         for(int i = 0; i < ySize; i++){
  54.                             for(int j = 0; j < xSize; j++){
  55.                                 printf("[%d]: ", i);
  56.                                 arr[i][j] = InputInteger();
  57.                             }
  58.                         }
  59.                         printf("Для продолжения нажмите Enter.");
  60.                         getchar();
  61.                         getchar();
  62.                         break;
  63.                     case 2:
  64.                         system("cls");
  65.                         srand(time(0));
  66.                         for(int i = 0; i < ySize; i++){
  67.                             for(int j = 0; j < xSize; j++){
  68.                                 arr[i][j] = rand() % 100 + 1;
  69.                                 printf("[%d][%d]: %d\n", i, j, arr[i][j]);
  70.                             }
  71.                         }
  72.                         printf("Для продолжения нажмите Enter.");
  73.                         getchar();
  74.                         getchar();
  75.                         break;
  76.                     default:
  77.                         break;
  78.                 }
  79.                 break;
  80.             case 2:
  81.             {
  82.                 system("cls");
  83.  
  84.                 for(int k = 0; k < ySize; k++){
  85.                     int* copyArr = new int[xSize];
  86.                     for(int i = 0; i < xSize; i++)
  87.                         copyArr[i] = arr[k][i];
  88.  
  89.                     for(int i = 0; i < xSize - 1; i++)
  90.                         for(int j = 0; j < xSize - 1; j++)
  91.                             if(copyArr[j] > copyArr[j + 1])
  92.                                 swap(&copyArr[j], &copyArr[j + 1]);
  93.  
  94.                     for(int i = 0; i < xSize; i++)
  95.                         printf("%d ", copyArr[i]);
  96.                     printf("\n");
  97.                     delete[] copyArr;
  98.                 }
  99.  
  100.                 printf("\nДля продолжения нажмите Enter.");
  101.                 getchar();
  102.                 getchar();
  103.                 break;
  104.             }
  105.             case 3:
  106.                 system("cls");
  107.                 for(int i = 0; i < ySize; i++){
  108.                     for(int j = 0; j < xSize; j++){
  109.                         printf("%d ", arr[i][j]);
  110.                     }
  111.                     printf("\n");
  112.                 }
  113.                 printf("Для продолжения нажмите Enter.");
  114.                 getchar();
  115.                 getchar();
  116.                 break;
  117.             case 4:
  118.                 isFour = true;
  119.                 break;
  120.             default:
  121.                 break;
  122.         }
  123.     } while(!isFour);
  124.  
  125.     for(int i = 0; i < ySize; i++)
  126.         delete[] arr[i];
  127.     delete[] arr;
  128.  
  129.     return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement