Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- using namespace std;
- double input_array(double *, size_t);
- double average_in_interval(double *, size_t);
- double find_max_and_its_index(double *, size_t, size_t &);
- void output_array(double *, size_t);
- double sum_of_nonzero_elements_and_count_of_zero_elements(double *, size_t, size_t &);
- int main() {
- int choice;
- size_t array_size, max_index = 0, count_of_zero_elements = 0;
- cout << "Enter array size: ";
- cin >> array_size;
- if (array_size < 0 || !cin || array_size > 25) {
- cout << "Error: Invalid input!";
- return 0;
- }
- double *array = new double[array_size];
- do {
- system("cls");
- cout << "Menu:\n";
- cout << "1. Input array\n";
- cout << "2. Calculate average in interval\n";
- cout << "3. Calculate sum of non-zero elements and zero elements count\n";
- cout << "4. Find max number in array and its index\n";
- cout << "5. Output array\n\n";
- cout << "0. Exit\n";
- cout << "Make your choice: ";
- cin >> choice;
- switch (choice) {
- case 1:
- input_array(array, array_size);
- break;
- case 2:
- cout << "\nAverage in interval: " << average_in_interval(array, array_size) << endl;
- cout << "Press any key to get back to the menu...";
- _getch();
- break;
- case 3:
- cout << "\nThe sum of non-zero elements is " << sum_of_nonzero_elements_and_count_of_zero_elements(array, array_size, count_of_zero_elements) << " | The count of zero elements is " << count_of_zero_elements << endl;
- cout << "Press any key to get back to the menu...";
- _getch();
- break;
- case 4:
- cout << "\nMax number is " << find_max_and_its_index(array, array_size, max_index) << " and has index " << max_index << endl;
- cout << "Press any key to get back to the menu...";
- _getch();
- break;
- case 5:
- output_array(array, array_size);
- cout << "Press any key to get back to the menu...";
- _getch();
- break;
- }
- } while (choice != 0);
- return 0;
- }
- double input_array(double *array, size_t array_size) {
- for (size_t i = 0; i < array_size; i++) {
- cout << "Enter value for Element #" << i << ": ";
- cin >> array[i];
- }
- return *array;
- }
- void output_array(double *array, size_t array_size) {
- cout << endl;
- for (size_t i = 0; i < array_size; i++)
- cout << "Element #" << i << " has value of " << array[i] << endl;
- }
- double average_in_interval(double *array, size_t array_size) {
- // Декларираме си сумата и задаваме начална стойност
- int average = 0;
- // Декларираме ми две променливи, които ще държат числата за интервала
- size_t min, max, count = 0;
- // Въвеждаме си минималният елемент от интервала
- cout << "\n\nEnter min to start from: ";
- cin >> min;
- // Въвеждаме си максималният елемент от интервала
- cout << "Enter max to end at: ";
- cin >> max;
- // Обхождаме масивът
- for (size_t i = 0; i < array_size; i++) {
- // Проверяваме дали текущият елемент е по-голям от минималният елемент (променливата min)
- // След това проверяваме дали е по-малък от максималният елемент (променливата max)
- // И накрая проверяваме дали е положително число текущият елемент от масива
- //
- // Ако всичките тези условия са изпълнени, променливата sum присвоява стойността на
- // досегашната си стойност + текущият елемент
- if (array[i] > min && array[i] < max) {
- average += array[i];
- count++;
- }
- }
- // Връщаме променливата, която държи сумата на всичките елементи в интервала
- return (average / count);
- }
- double find_max_and_its_index(double *array, size_t array_size, size_t &index) {
- int max;
- size_t positive_counter = 0;
- for (size_t i = 0; i < array_size; i++) {
- if (array[i] > 0) {
- positive_counter++;
- index = i;
- }
- }
- if (positive_counter == 0) {
- cout << "No positive numbers in the array!";
- return 0;
- } else {
- max = array[index];
- }
- for (size_t i = 0; i < array_size; i++) {
- if (max < array[i]) {
- max = array[i];
- index = i;
- }
- }
- return max;
- }
- double sum_of_nonzero_elements_and_count_of_zero_elements(double *array, size_t array_size, size_t &count) {
- count = 0;
- int sum = 0;
- for (size_t i = 0; i < array_size; i++) {
- if (array[i] == 0)
- count++;
- else if(array[i] != 0)
- sum += array[i];
- }
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement