Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.43 KB | None | 0 0
  1. #include "iostream"
  2.  
  3. using namespace std;
  4. const int N = 30;
  5. void vavejd(int mas[], int&k);
  6. int proizv(int mas[], int k, int &pr);
  7. double sredno(int mas[], int k, double &sr);
  8. void null(int mas[], int&br, int &sumNeNul, int k);
  9. void max(int mas[], int &maxim, int &nomer, int k);
  10.  
  11. void main()
  12. {
  13.     int am[N];
  14.     int choice;
  15.     int l(0);
  16.     double sr(0.0);
  17.     int sumNeNul(0);
  18.     int brojach(0);
  19.     int maxim, nomer;
  20.     int pr = 1;
  21.  
  22.     do {
  23.         cout << endl << "1. Vavezdane";
  24.         cout << endl << "2. Proizvedenie na otricatelni chisla";
  25.         cout << endl << "3. Sredno aritmetichno na chisla delqshtishi se na 5";
  26.         cout << endl << "4. Suma na nenulevi, broj nulevi";
  27.         cout << endl << "5. Max polozitelno chislo i poreden nomer";
  28.         cout << endl << "6. exit" << endl;
  29.  
  30.         cin >> choice;
  31.  
  32.         switch (choice)
  33.         {
  34.         case 1:
  35.             vavejd(am, l);
  36.             break;
  37.         case 2:
  38.             proizv(am, l, pr); //проиведение на отрицателни
  39.             cout << pr << endl;
  40.             break;
  41.         case 3:
  42.             sredno(am, l, sr); //средноаритметично на числа, за които % 5 = 0
  43.             cout << sr << endl;
  44.             break;
  45.         case 4:
  46.             null(am, brojach, sumNeNul, l); //брой нулеви и сума на ненулеви елементи
  47.             cout << "Suma: " << sumNeNul << endl;
  48.             cout << "Broj: " << brojach << endl;
  49.             break;
  50.         case 5:
  51.             max(am, maxim, nomer, l); //нах-голямо положително число и пореден номер
  52.  
  53.             if (maxim == 0) //ако maxim e останало нула, то масива не съдържа полож. числа
  54.             {
  55.                 cout << "Masiva ne sadarza polozitelni chisla";
  56.             }
  57.  
  58.             else { // ако има положителни числа, изведи maxim и поредния номер
  59.                 cout << "Max: " << maxim << endl;
  60.                 cout << "Poreden nomer: " << nomer << endl;
  61.             }
  62.         }
  63.     } while (choice != 6);
  64. }
  65.  
  66. //функция за избиране на размерност и въвеждане на елементите на масив:
  67. void vavejd(int mas[], int&k) {
  68.     cout << endl << "Vavedi razmernost: ";
  69.  
  70.     //валидация за размер (между 1 и 30)
  71.     do {
  72.         cin >> k;
  73.     } while (k < 1 || k > N);
  74.  
  75.     cout << endl << "Vavezdane na elementi: " << endl;
  76.  
  77.     for (int i = 0; i < k; i++)
  78.     {
  79.         cin >> mas[i];
  80.     }
  81. }
  82.  
  83. //функция за пресмятане на произведението от отрицателните числа:
  84. int proizv(int mas[], int k, int &pr)
  85. {
  86.     for (int i = 0; i < k; i++)
  87.     {
  88.         if (mas[i] < 0) //отрицателно число
  89.         {
  90.             pr = pr * mas[i];
  91.         }
  92.     }
  93.  
  94.     return pr;
  95. }
  96.  
  97. //функция изчисляваща средно аритметичното на числата в масива делящисе на 5 без остатък.
  98. double sredno(int mas[], int k, double &sr)
  99. {
  100.     int suma = 0;
  101.     int broj = 0;
  102.  
  103.     for (int i = 0; i < k; i++)
  104.     {
  105.         if (mas[i] % 5 == 0) //делящо се на 5 без остатък
  106.         {
  107.             suma += mas[i];
  108.             broj++;
  109.         }
  110.     }
  111.  
  112.  
  113.     if (broj == 0) // проверка дали има числа делящи се на 5 без остатък
  114.     {
  115.         cout << "Masiva ne sadarza chisla delqshtise na 5 bez ostatak";
  116.         return 0;
  117.     }
  118.  
  119.     else // ако има числа делящисе на 5, вземи средноаритметичното им
  120.     {
  121.         sr = suma / broj;
  122.         return suma / broj;
  123.     }
  124. }
  125.  
  126. //функция пресмятаща сумата на ненулевите елементи и броя на нулевите елементи
  127. void null(int mas[], int&br, int &sumNeNul, int k)
  128. {
  129.     for (int i = 0; i < k; i++)
  130.     {
  131.         if (mas[i] == 0) //ако числото е 0, увеличи брояча с едно
  132.         {
  133.             br++;
  134.         }
  135.  
  136.         else //ако не е 0 го прибави към сумата на ненулевите
  137.         {
  138.             sumNeNul += mas[i];
  139.         }
  140.     }
  141. }
  142.  
  143. //функция намираща елемента с най-голяма стойност и поредния му номер.
  144. void max(int mas[], int &maxim, int &nomer, int k)
  145. {
  146.     nomer = 0; //приемаме че най-голямото число е на нулева позиция
  147.     maxim = 0;
  148.  
  149.     for (int i = 0; i < k; i++)
  150.     {
  151.         if (mas[i] > maxim) //ако числото е по - голямо от текущата стойност на maxim,
  152.         {                  
  153.             maxim = mas[i];//присвои стойността на maxim
  154.             nomer = i; // и вземи поредния номер на числото
  155.         }
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement