Advertisement
Usow_Maxim

Lab_2_7

Nov 1st, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 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("Введите размер массива: ");
  32.     int Size = InputInteger();
  33.     int* arr = new int[Size];
  34.     for(int i = 0; i < Size; i++)
  35.         arr[i] = 0;
  36.     bool isFour = false;
  37.     do {
  38.         system("cls");
  39.         printf("1.Ввод элементов массива.\n2.Обработка массива.\n3.Вывод массива на экран.\n4.Выход.\nВвод: ");
  40.         switch(InputInteger()){
  41.             case 1:
  42.                 system("cls");
  43.                 printf("1.Ручное заполнение.\n2.Рандомное заполнение.\nВвод: ");
  44.                 switch(InputInteger()){
  45.                     case 1:
  46.                         system("cls");
  47.                         for(int i = 0; i < Size; i++){
  48.                             printf("[%d]: ", i);
  49.                             arr[i] = InputInteger();
  50.                         }
  51.                         printf("Для продолжения нажмите Enter.");
  52.                         getchar();
  53.                         getchar();
  54.                         break;
  55.                     case 2:
  56.                         system("cls");
  57.                         srand(time(0));
  58.                         for(int i = 0; i < Size; i++){
  59.                             arr[i] = rand() % 100 + 1;
  60.                             printf("[%d]: %d\n", i, arr[i]);
  61.                         }
  62.                         printf("Для продолжения нажмите Enter.");
  63.                         getchar();
  64.                         getchar();
  65.                         break;
  66.                     default:
  67.                         break;
  68.                 }
  69.                 break;
  70.             case 2:
  71.             {
  72.                 system("cls");
  73.                 int* copyArr = new int[Size];
  74.                 for(int i = 0; i < Size; i++)
  75.                     copyArr[i] = arr[i];
  76.  
  77.                 for(int i = 0; i < Size - 1; i++)
  78.                     for(int j = 0; j < Size - 1; j++)
  79.                         if(copyArr[j] > copyArr[j + 1])
  80.                             swap(&copyArr[j], &copyArr[j + 1]);
  81.  
  82.                 for(int i = 0; i < 3; i++)
  83.                     if(i < Size)
  84.                         printf("%d ", copyArr[i]);
  85.                 delete[] copyArr;
  86.                 printf("\nДля продолжения нажмите Enter.");
  87.                 getchar();
  88.                 getchar();
  89.                 break;
  90.             }
  91.             case 3:
  92.                 system("cls");
  93.                 for(int i = 0; i < Size; i++)
  94.                     printf("[%d]: %d\n", i, arr[i]);
  95.                 printf("Для продолжения нажмите Enter.");
  96.                 getchar();
  97.                 getchar();
  98.                 break;
  99.             case 4:
  100.                 isFour = true;
  101.                 break;
  102.             default:
  103.                 break;
  104.         }
  105.     } while(!isFour);
  106.  
  107.     delete[] arr;
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement