Advertisement
gguuppyy

лаба2н1

Oct 14th, 2023 (edited)
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int n;
  8.     bool isIncorrect;
  9.  
  10.     cout << "Данная программа предназначена для изменения данной последовательности так, чтобы в начале стояли все нулевые элементы, затем отрицательные, а затем положительные элементы последовательности." << endl;
  11.  
  12.     do
  13.     {
  14.         isIncorrect = false;
  15.         cout << "Введите количество элементов в последовательности: ";
  16.         cin >> n;
  17.         if (cin.get() != '\n')
  18.         {
  19.             cin.clear();
  20.             while (cin.get() != '\n');
  21.             isIncorrect = true;
  22.             cout << "Ошибка! Введите число." << endl;
  23.         }
  24.         if ((!isIncorrect) && (n < 1))
  25.         {
  26.             isIncorrect = true;
  27.             cout << "Ошибка! Введите верное количество элементов." << endl;
  28.         }
  29.     }
  30.     while (isIncorrect);
  31.  
  32.     int* arr = new int[n];
  33.     int* zeros = new int[n];
  34.     int* negatives = new int[n];
  35.     int* positives = new int[n];
  36.  
  37.     int zeroIndex = 0;
  38.     int negativeIndex = 0;
  39.     int positiveIndex = 0;
  40.  
  41.     cout << "Введите элементы последовательности." << endl;
  42.     for (int i = 0; i < n; ++i)
  43.     {
  44.         do
  45.         {
  46.             isIncorrect = false;
  47.             cout << "Элемент " << i + 1 << ": ";
  48.             cin >> arr[i];
  49.             if (cin.get() != '\n')
  50.             {
  51.                 cin.clear();
  52.                 while (cin.get() != '\n');
  53.                 isIncorrect = true;
  54.                 cout << "Ошибка. Введите целое число." << endl;
  55.             }
  56.         }
  57.         while (isIncorrect);
  58.         }    
  59.  
  60.        
  61.         if (arr[i] == 0)
  62.         {
  63.             zeros[zeroIndex] = arr[i];
  64.             ++zeroIndex;
  65.         }
  66.         else if (arr[i] < 0)
  67.         {
  68.             negatives[negativeIndex] = arr[i];
  69.             ++negativeIndex;
  70.         }
  71.         else
  72.         {
  73.             positives[positiveIndex] = arr[i];
  74.             ++positiveIndex;
  75.         }
  76.     }
  77.  
  78.     for (int i = 0; i < zeroIndex; ++i)
  79.     {
  80.         arr[i] = zeros[i];
  81.     }
  82.  
  83.     for (int i = 0; i < negativeIndex; ++i)
  84.     {
  85.         arr[i + zeroIndex] = negatives[i];
  86.     }
  87.  
  88.     for (int i = 0; i < positiveIndex; ++i)
  89.     {
  90.         arr[i + zeroIndex + negativeIndex] = positives[i];
  91.     }
  92.  
  93.     cout << "Отсортированная последовательность: ";
  94.     for (int i = 0; i < n; ++i)
  95.     {
  96.         cout << arr[i] << " ";
  97.     }
  98.  
  99.     delete[] arr;
  100.     delete[] zeros;
  101.     delete[] negatives;
  102.     delete[] positives;
  103.  
  104.     return 0;
  105. }
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement