Написать программу на языке С++(со всеми ОБЪЯСНЕНИЯМИ)
Написать функцию-процедуру, которая принимает в качестве аргументов целочисленный массив и две переменные a и b. Функция должна вычислять количество элементов массива, значения которых лежат в диапазоне от a до b. Это количество сохраняет в переменной-аргументе a. В b сохраняет количество элементов, не попадающих в диапазон.
Answers & Comments
#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;
}
#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;
}