Advertisement
frustration

вариант 1.одномерный массив

Dec 19th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1.  /*В одномерном массиве, состоящем из н вещ элементов, вычислить:
  2. 1)сумму отрицательных элементов
  3. 2)произведение элементов массива между максимальным и минимальным
  4.  
  5. упорядочить элементы массива по возрастанию*/
  6.  
  7. #include <iostream>
  8. #include <time.h>
  9. #include <conio.h>
  10. #include <cmath>
  11. #include <memory>
  12.  
  13. using namespace std;
  14.  
  15. int main() {
  16.     int N, indmin = 0, indmax = 0, k, l;
  17.     float sum = 0, product = 1, min, max;
  18.     cout << "size array: ";
  19.     cin >> N;
  20.  
  21.     float* arr = new float[N];
  22.  
  23.     srand(time(NULL));
  24.     cout << "original array: " << "\n";
  25.     for (int i = 0; i < N; ++i) {
  26.         arr[i] = (float)(rand() % 2001) / 100-10;
  27.         cout << arr[i] << "   ";
  28.     }
  29.  
  30.     for (int i = 0; i < N; ++i) {
  31.         if (arr[i] < 0)
  32.             sum += arr[i];
  33.     }
  34.     if (sum==0)
  35.         cout << "\n" << "1) array hasn't negative items " << "\n";
  36.     else
  37.         cout << "\n" << "1) sum of negative numbers: " << sum << "\n";
  38.  
  39.     min = arr[0];
  40.  
  41.     for (int i = 1; i < N; ++i) {
  42.         if (min > arr[i]) {
  43.             min = arr[i];
  44.             indmin = i;
  45.         }
  46.     }
  47.  
  48.     max = arr[0];
  49.  
  50.     for (int i = 1; i < N; ++i) {
  51.         if (max < arr[i]) {
  52.             max = arr[i];
  53.             indmax = i;
  54.         }
  55.     }
  56.  
  57.     if (abs(indmax - indmin) == 1) {
  58.         cout << "2) max and min are near" << "\n\n";
  59.     }
  60.     else if (indmax > indmin){
  61.         for (int i = indmin + 1; i < indmax; ++i)
  62.             product *= arr[i];
  63.         cout << "2) product between min and max:" << product << "\n\n";
  64.  
  65.     }
  66.     else {
  67.         for (int i = indmax + 1; i < indmin; ++i)
  68.             product *= arr[i];
  69.         cout << "2) product between max and min:" << product << "\n\n";
  70.     }
  71.  
  72.     for (int i = 0; i < N - 1; ++i) {
  73.         for (int j = 0; j < N - 1; ++j) {
  74.             if (arr[j] > arr[j + 1])
  75.                 swap(arr[j], arr[j + 1]);
  76.         }
  77.     }
  78.  
  79.     cout << "new array after bubble sort" << "\n";
  80.     for (int i = 0; i < N; ++i) {
  81.         cout << arr[i] << "   ";
  82.     }
  83.  
  84.  
  85.  
  86.     float item;
  87.     for (int step = N / 2; step>0; step /= 2)
  88.         for (l = step; l < N; ++l) {
  89.             item = arr[l];
  90.             for (k = l; k >= step; k -= step) {
  91.                 if (item > arr[k - step])
  92.                     arr[k] = arr[k - step];
  93.                 else
  94.                     break;
  95.             }
  96.             arr[k] = item;
  97.         }
  98.  
  99.  
  100.     cout << "\n\n" << "new array after Shell sort" << "\n";
  101.     for (int i = 0; i < N; ++i) {
  102.         cout << arr[i] << "   ";
  103.     }
  104.  
  105.     _getch();
  106.     return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement