
Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [
A , B ] и определяет среднее арифметическое всех элементов этого массива, которые меньше 50, и среднее арифметическое всех остальных элементов. Входные данные Входная строка содержит три числа: границы диапазона случайных чисел A и B , а также размер массива N . Все числа разделены пробелами. Гарантируется, что 0 < N ≤ 10000 . Выходные данные В первой строке программа должна вывести N элементов построенного массива, разделив их пробелами, а во второй строке – среднее арифметическое всех элементов этого массива, которые меньше 50, и затем через пробел среднее арифметическое всех остальных элементов. При выводе последних двух чисел нужно сохранить три знака в дробной части. Если в какой-то из двух групп не оказалось ни одного элемента, нужно вывести вместо среднего арифметического число 0. CPP Примеры входные данные 0 100 10 выходные данные 0 3 86 20 27 67 32 16 37 42 22.125 76.500

Ответы на вопрос

Решение на c++:
#include <iostream>
#include <ctime>
int main()
{
int N, i, a, b, k1 = 0, k2 = 0, s1 = 0, s2 = 0;
int A[10000];
std::cin >> a >> b >> N;
srand(time(0));
for (i = 0; i < N; i++)
{
A[i] = rand()%(b-a+1)+a;
if (A[i] < 50)
{
k1++;
s1 += A[i];
}
else
{
k2++;
s2 += A[i];
}
std::cout << A[i] << " ";
}
std::cout << std::endl << ((k1 == 0) ? 0 : (s1*1./k1)) << " ";
std::cout << ((k2 == 0) ? 0 : (s2 * 1. / k2)) << " ";
return 0;
}



Конечно, вот пример программы на C++, который решает данную задачу:
cpp#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip> // Для управления выводом дробных чисел
using namespace std;
int main() {
int A, B, N;
cin >> A >> B >> N;
int array[N];
double sumBelow50 = 0, sumAbove50 = 0; // Суммы элементов меньше и больше 50
int countBelow50 = 0, countAbove50 = 0; // Количество элементов меньше и больше 50
srand(time(0)); // Инициализация генератора случайных чисел по текущему времени
// Заполнение массива случайными числами
for (int i = 0; i < N; ++i) {
array[i] = A + rand() % (B - A + 1);
if (array[i] < 50) {
sumBelow50 += array[i];
countBelow50++;
} else {
sumAbove50 += array[i];
countAbove50++;
}
}
// Вывод массива
for (int i = 0; i < N; ++i) {
cout << array[i] << " ";
}
cout << endl;
// Расчет и вывод средних значений
cout << fixed << setprecision(3); // Устанавливаем точность вывода дробных чисел
if (countBelow50 > 0) {
cout << sumBelow50 / countBelow50 << " ";
} else {
cout << "0 ";
}
if (countAbove50 > 0) {
cout << sumAbove50 / countAbove50 << endl;
} else {
cout << "0" << endl;
}
return 0;
}
Программа сначала считывает границы диапазона (A и B) и размер массива (N) из входных данных. Затем она заполняет массив случайными числами в указанном диапазоне и одновременно вычисляет суммы элементов меньше и больше 50, а также подсчитывает их количество.
После заполнения массива программа выводит элементы массива, а затем выводит средние арифметические значения для элементов меньше и больше 50 с требуемой точностью. Если в какой-то из групп не оказалось элементов, выводится "0".


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili