Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "iostream"
- using namespace std;
- const int N = 30;
- void vavejd(int mas[], int&k);
- int proizv(int mas[], int k, int &pr);
- double sredno(int mas[], int k, double &sr);
- void null(int mas[], int&br, int &sumNeNul, int k);
- void max(int mas[], int &maxim, int &nomer, int k);
- void main()
- {
- int am[N];
- int choice;
- int l(0);
- double sr(0.0);
- int sumNeNul(0);
- int brojach(0);
- int maxim, nomer;
- int pr = 1;
- do {
- cout << endl << "1. Vavezdane";
- cout << endl << "2. Proizvedenie na otricatelni chisla";
- cout << endl << "3. Sredno aritmetichno na chisla delqshtishi se na 5";
- cout << endl << "4. Suma na nenulevi, broj nulevi";
- cout << endl << "5. Max polozitelno chislo i poreden nomer";
- cout << endl << "6. exit" << endl;
- cin >> choice;
- switch (choice)
- {
- case 1:
- vavejd(am, l);
- break;
- case 2:
- proizv(am, l, pr); //проиведение на отрицателни
- cout << pr << endl;
- break;
- case 3:
- sredno(am, l, sr); //средноаритметично на числа, за които % 5 = 0
- cout << sr << endl;
- break;
- case 4:
- null(am, brojach, sumNeNul, l); //брой нулеви и сума на ненулеви елементи
- cout << "Suma: " << sumNeNul << endl;
- cout << "Broj: " << brojach << endl;
- break;
- case 5:
- max(am, maxim, nomer, l); //нах-голямо положително число и пореден номер
- if (maxim == 0) //ако maxim e останало нула, то масива не съдържа полож. числа
- {
- cout << "Masiva ne sadarza polozitelni chisla";
- }
- else { // ако има положителни числа, изведи maxim и поредния номер
- cout << "Max: " << maxim << endl;
- cout << "Poreden nomer: " << nomer << endl;
- }
- }
- } while (choice != 6);
- }
- //функция за избиране на размерност и въвеждане на елементите на масив:
- void vavejd(int mas[], int&k) {
- cout << endl << "Vavedi razmernost: ";
- //валидация за размер (между 1 и 30)
- do {
- cin >> k;
- } while (k < 1 || k > N);
- cout << endl << "Vavezdane na elementi: " << endl;
- for (int i = 0; i < k; i++)
- {
- cin >> mas[i];
- }
- }
- //функция за пресмятане на произведението от отрицателните числа:
- int proizv(int mas[], int k, int &pr)
- {
- for (int i = 0; i < k; i++)
- {
- if (mas[i] < 0) //отрицателно число
- {
- pr = pr * mas[i];
- }
- }
- return pr;
- }
- //функция изчисляваща средно аритметичното на числата в масива делящисе на 5 без остатък.
- double sredno(int mas[], int k, double &sr)
- {
- int suma = 0;
- int broj = 0;
- for (int i = 0; i < k; i++)
- {
- if (mas[i] % 5 == 0) //делящо се на 5 без остатък
- {
- suma += mas[i];
- broj++;
- }
- }
- if (broj == 0) // проверка дали има числа делящи се на 5 без остатък
- {
- cout << "Masiva ne sadarza chisla delqshtise na 5 bez ostatak";
- return 0;
- }
- else // ако има числа делящисе на 5, вземи средноаритметичното им
- {
- sr = suma / broj;
- return suma / broj;
- }
- }
- //функция пресмятаща сумата на ненулевите елементи и броя на нулевите елементи
- void null(int mas[], int&br, int &sumNeNul, int k)
- {
- for (int i = 0; i < k; i++)
- {
- if (mas[i] == 0) //ако числото е 0, увеличи брояча с едно
- {
- br++;
- }
- else //ако не е 0 го прибави към сумата на ненулевите
- {
- sumNeNul += mas[i];
- }
- }
- }
- //функция намираща елемента с най-голяма стойност и поредния му номер.
- void max(int mas[], int &maxim, int &nomer, int k)
- {
- nomer = 0; //приемаме че най-голямото число е на нулева позиция
- maxim = 0;
- for (int i = 0; i < k; i++)
- {
- if (mas[i] > maxim) //ако числото е по - голямо от текущата стойност на maxim,
- {
- maxim = mas[i];//присвои стойността на maxim
- nomer = i; // и вземи поредния номер на числото
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement