Написать программу на языке с++(со всеми объяснениями)
написать функцию-процедуру, которая принимает в качестве аргументов целочисленный массив и две переменные a и b. функция должна вычислять количество элементов массива, значения которых лежат в диапазоне от a до b. это количество сохраняет в переменной-аргументе a. в b сохраняет количество элементов, не в диапазон.​

katiapopovici katiapopovici    1   26.11.2019 06:15    1

Ответы
diankakakutkin diankakakutkin  10.10.2020 15:57

#include <iostream>

#include <time.h>

using namespace std;

pair<int, int> arr_to_range_and_save_the_number_of_elements(int* arr,int n, int a, int b) {

int count = 0;

for (size_t i = 0; i < n; i++) {

 if (arr[i] >= a && arr[i] <= b) {

  count++;

 }

}

a = count;

b = n - a;

return make_pair(a, b);

}

int* input_arr_auto(int* arr, int n) {

for (size_t i = 0; i < n; i++) {

 arr[i] = rand() % 200 - 100;

}

return arr;

}

int* input_arr(int* arr, int n) {

for (size_t i = 0; i < n; i++) {

 cin >> arr[i];

}

return arr;

}

void print_arr(int* arr, int n) {

for (size_t i = 0; i < n; i++) {

 cout << arr[i] << " ";

}

cout << endl;

}

int main()

{

setlocale(LC_ALL, "Russian");

srand(time(NULL));

int n;

int a, b;

cout << "Введите количество элементов массива: ";

cin >> n;

pair<int, int> pair_a_b;

int* arr = new int[n];

arr = input_arr_auto(arr, n);

print_arr(arr, n);

cout << "Введите a: ";

cin >> a;

cout << "Введите b: ";

cin >> b;

pair_a_b = arr_to_range_and_save_the_number_of_elements(arr, n, a, b);

cout << "Количество элементов, входящих в радиус: " << pair_a_b.first << endl;

cout << "Количество элементов, не входящих в радиус: " << pair_a_b.second;

}

ПОКАЗАТЬ ОТВЕТЫ
ХацуноМико ХацуноМико  10.10.2020 15:57

#include <iostream>

using namespace std;

void foo (int a[], int n, int& b, int& c)

{

   // мы не можем в С++ определить размер массива

   // поэтому вынуждены ее передавать в качестве параметра,

   // либо использовать специальный класс array

   int low = b, high = c;

   b = c = 0;

   for(int i = 0; i < n; i++)

       if((a[i] >= low) && (a[i] <= high))

           b++;

       else

           c++;

}

int main()

{

   int n;

   srand(time(0));

   cout << "Число элементов в массиве? ";

   cin >> n;

   int a[n];

   for(int i = 0; i < n; i++)

   {

       a[i] = rand() % 199 - 98;

       cout << a[i] << " ";

   }

   cout << "\nУкажите верхнюю и нижнюю границы для отбора: ";

   int b, c;

   cin >> b >> c;

   foo(a, n, b, c);

   cout << "Элементов в интервале: " << b << ", вне интервала: " << c;

   return 0;

}


Написать программу на языке с++(со всеми объяснениями)написать функцию-процедуру, которая принимает
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика