Advertisement
borko_panterata

Zad1 Kursova Rabota

Nov 5th, 2023 (edited)
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. int sumaOtr(const int array[], int size);
  5. double minMaxAvg(const int array[], int size);
  6. int nullCount(const int array[], int size);
  7. void maxPosNum(const int array[], int size);
  8. void izvejdane(const int array[], int size);
  9. std::string numDobavka(int chislo);
  10.  
  11.  
  12. int main()
  13. {
  14.     int n;
  15.     char read;
  16.     while (true)
  17.     {
  18.         std::cout << "Vyvedete razmera na masiva: ";
  19.         std::cin >> n;
  20.         if (n >= 2 && n <= 25) break;
  21.         std::cout << "Nevaliden vhod!! Masiva moje da e s razmer ot 2 do 25 vkl!!!"
  22.             << std::endl;
  23.     }
  24.  
  25.     int masiv[25]; // int masiv[n];
  26.  
  27.     for (int i = 0; i < n; i++)
  28.     {
  29.         std::cout << "Enter element " << i << "'s value: ";
  30.         std::cin >> masiv[i];
  31.     }
  32.  
  33.     while (true) izvejdane(masiv, n);
  34.     return 0;
  35. }
  36.  
  37. int sumaOtr(const int array[], int size)
  38. {
  39.     int suma = 0;
  40.     for (int i = 0; i < size; i++)
  41.     {
  42.         if (array[i] < 0) suma += array[i];
  43.     }
  44.     return suma;
  45. }
  46.  
  47. double minMaxAvg(const int array[], int size)
  48. {
  49.     double suma = 0;
  50.     int counter = 0;
  51.     int min, max;
  52.     while (true)
  53.     {
  54.         std::cout << "Vyvdete min stojnost: ";
  55.         std::cin >> min;
  56.         if (min > 0) break;
  57.         std::cout << "Molq vyvedete polojitelno chislo za stojnost na min!!" << std::endl;
  58.     }
  59.     while (true)
  60.     {
  61.         std::cout << "Vyvdete max stojnost: ";
  62.         std::cin >> max;
  63.         if (max > 0 && max >= min) break;
  64.         else if (max <= 0) std::cout << "Molq vyvedete polojitelno chislo za stojnost na min!!" << std::endl;
  65.         else if (max > min) std::cout << "Max ne moje da e po-golqmot ot min!!" << std::endl;
  66.     }
  67.     for (int i = 0; i < size; i++)
  68.     {
  69.         if (array[i] >= min && array[i] <= max)
  70.         {
  71.             suma += array[i];
  72.             counter++;
  73.         }
  74.     }
  75.     return suma / counter;
  76. }
  77.  
  78. int nullCount(const int array[], int size)
  79. {
  80.     int counter = 0;
  81.     for (int i = 0; i < size; i++)
  82.     {
  83.         if (array[i] == 0) counter++;
  84.     }
  85.     return counter;
  86.    
  87. }
  88.  
  89. void maxPosNum(const int array[], int size)
  90. {
  91.     int pos = 0;
  92.     int max = 0;
  93.     for (int i = 0; i < size; i++)
  94.     {
  95.         if (array[i] > 0 && array[i] > max)
  96.         {
  97.             max = array[i];
  98.             pos = i + 1;
  99.         }
  100.     }
  101.     if (max == 0) std::cout << "Nqma polojitelni chisla v masiva :(" << std::endl;
  102.     else std::cout << "Maksimalnoto polojitelno chislo v masiva e " << max
  103.         << " i e " << pos << numDobavka(pos) << " pored" << std::endl;
  104. }
  105.  
  106. void izvejdane(const int array[], int size)
  107. {
  108.     char a;
  109.     bool flag = false;
  110.     //std::cout << "Vyvedete '1' za vyvejdane na masiv" << std::endl;
  111.     std::cout << "Vyvedete '2' za izchislqvane sumata na otricatelnite chisla v masiva"
  112.         << std::endl;
  113.     std::cout <<
  114.         "Vyvedete '3' za izchislqvane sredno-aritmetichnoto ot polojitelnite chisla v masiva v diapazon [min - max]" << std::endl;
  115.     std::cout << "Vyvedete '4' za ichislqvane broq na nulite v masiva" << std::endl;
  116.     std::cout << "Vyvedete '5' za namirane naj-golqmoto polojitelno chislo v masiva i negoviq poreden nomer" << std::endl;
  117.     std::cin >> a;
  118.    
  119.     for (int i = 0; i < size; i++)
  120.     {
  121.         if (array[i] != 0) flag = true;
  122.     }
  123.     if (flag) std::cout << "Masiva e prazen!!!" << std::endl;
  124.     else
  125.     {
  126.        
  127.         switch (a)
  128.         {
  129.         case '2':
  130.             if (sumaOtr(array, size) == 0) std::cout << "Nqma otricatelni chisla v masiva!" << std::endl;
  131.             else std::cout << "Sumata na otricatelnite chisla e " << sumaOtr(array, size) << std::endl;
  132.             break;
  133.         case '3':
  134.             if (minMaxAvg(array, size) == 0)
  135.                 std::cout << "Nqma polojitelni chisla v masiva v diapazona!" << std::endl;
  136.             else std::cout << "Sredno aritmetichnoto v diapazona e "
  137.                 << std::setprecision(3) << minMaxAvg(array, size);
  138.             break;
  139.         case '4':
  140.             std::cout << "Broqt na nulite v masiva e " << nullCount(array, size) << std::endl;
  141.             break;
  142.         case '5':
  143.             maxPosNum(array, size);
  144.             break;
  145.         default:
  146.             std::cout << "Nevaliden vhod :/" << std::endl;
  147.             break;
  148.         }
  149.     }
  150. }
  151.  
  152. std::string numDobavka(int chislo)
  153. {
  154.     std::string result;
  155.     switch (chislo)
  156.     {
  157.         case 1:
  158.         case 21:
  159.             result = "vo";
  160.             break;
  161.         case 2:
  162.         case 22:
  163.             result = "ro";
  164.             break;
  165.         case 7:
  166.         case 8:
  167.             result = "mo";
  168.             break;
  169.         default: //vs ostanalo
  170.             result = "to";
  171.             break;
  172.     }
  173.     return result;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement