Advertisement
Xsufu

Untitled

Dec 12th, 2019
486
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.33 KB | None | 0 0
  1. #include <iostream> // библиотека ввода-вывода
  2. #include <cstdlib> //библиотека для random
  3. #include <ctime> //библиотека для time
  4. using namespace std;
  5.  
  6. void summ(int, int *mass);
  7.  
  8. void max(int, int *mass);
  9.  
  10. void mirr(int, int *mass);
  11.  
  12. int menuv(int, int *mass);
  13.  
  14. int main(){
  15.     int menu, z = 1;
  16.     const int N = 10; // конcтанта длины массива
  17.     int mass[N]; //создаём массив с длиной N
  18.    
  19.     srand(time(NULL)); //включаем генерацию чисел в реальном времени
  20.    
  21.     for (int i = 0; i<N; i++){
  22.         mass[i] = 1+rand()%40; // массив заполняется случайными числами от 1 до 40
  23.         cout << mass[i] << " "; //выводим массив
  24.     }
  25.    
  26.     cout << "\n\n"; // пустые строки для красоты
  27.    
  28.     while(z!=0){
  29.         z = menuv (N,mass);
  30.     }
  31.     return 0;
  32. }
  33.  
  34. void max(int N, int *mass) {
  35.     int max = 0, min = 41, numx, numn;
  36.  
  37.     for (int i = 0; i<N; i++) { // находим максимальное число в массиве
  38.         if (mass[i]>max) {
  39.             max = mass[i];
  40.             numx = i;
  41.         }
  42.         if (mass[i]<min) { // находим минимальное число в массиве
  43.             min = mass[i];
  44.             numn = i;
  45.         }
  46.     }
  47.  
  48.     //потворный вывод массива
  49.     for (int i = 0; i < N; i++) {
  50.         cout << mass[i] << " ";
  51.     }
  52.     cout << "\n";
  53.  
  54.     cout << "\n" << "The maximum number in the array is " << max << ". On position " << numx+1 << endl; // выводим максимальное число в массиве
  55.     cout << "The minimum number in the array is " << min << ". On position " << numn+1 << endl; // выводим минимально число в массиве
  56. }
  57.  
  58. void summ(int N, int *mass) {
  59.     // min и max - память для максимума и минимума, summ - сумма, numx и numn - память позиции
  60.     int max = 0, min = 41, numx = 0, numn = 0, summ = 0;
  61.  
  62.     for (int i = 0; i<N; i++) { // находим максимальное число в массиве
  63.         if (mass[i]>max) {
  64.             max = mass[i];
  65.             numx = i;
  66.         }
  67.         if (mass[i]<min) { // находим минимальное число в массиве
  68.             min = mass[i];
  69.             numn = i;
  70.         }
  71.     }
  72.  
  73.     // узнаём какое из чисел левее и находим сумму чисел между ними
  74.     if (numx < numn) {
  75.         for (int i = numx + 1; i<numn; i++) {
  76.             summ += mass[i];
  77.         }
  78.     }
  79.     else {
  80.         for (int i = numn + 1; i<numx; i++) {
  81.             summ += mass[i];
  82.         }
  83.     }
  84.  
  85.  
  86.     //потворный вывод массива
  87.     for (int i = 0; i < N; i++) {
  88.         cout << mass[i] << " ";
  89.     }
  90.     cout << "\n";
  91.  
  92.     // выводим сумму
  93.     cout << "\nThe maximum number on position " << numx + 1 << endl;
  94.     cout << "The minimum number on position " << numn + 1 << endl;
  95.     cout << "\nThe summ of the numbers between the max and minimum is equal to: " << summ << endl;
  96. }
  97.  
  98. void mirr(int N, int *mass) {
  99.     int l, r, x = N - 1, c = 0;
  100.  
  101.     //потворный вывод массива
  102.     for (int i = 0; i < N; i++) {
  103.         cout << mass[i] << " ";
  104.     }
  105.     cout << "\n\n";
  106.  
  107.     // попарно меняем местами левые числа с правыми
  108.     while (c<x) {
  109.         l = mass[c];
  110.         r = mass[x];
  111.         mass[c] = r;
  112.         mass[x] = l;
  113.         x--;
  114.         c++;
  115.     }
  116.  
  117.     // выводим перевёрнутый массив
  118.     for (int i = 0; i<N; i++) {
  119.         cout << mass[i] << " ";
  120.     }
  121.  
  122.     cout << "\n";
  123. }
  124.  
  125. int menuv(int N, int *mass) {
  126.     int menu = 0;
  127.  
  128.     // выводим информацию о меню пользователю
  129.     cout << "Select of menu item: \n";
  130.     cout << " 1 - Found the maximum and minimum \n 2 - Find summ between max and min \n 3 - Mirror array \n 4 - Create an array again \n 5 - Exit\n";
  131.     cout << ">>";
  132.     cin >> menu;
  133.  
  134.     switch (menu) {
  135.     case 1: system("cls"); max(N, mass); cout << "\n"; break; // нахождение максимума и минимума
  136.     case 2: system("cls"); summ(N, mass); cout << "\n"; break; // нахождение суммы
  137.     case 3: system("cls"); mirr(N, mass); cout << "\n"; break; // отзеркаливание массива
  138.     case 4: system("cls"); main(); return 0; break; //пересоздание массива
  139.     case 5: return 0; // выход
  140.     default: cout << "Wrong number\n"; // включаем защиту от левых чисел
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement