Контрольные задания > 20. Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.
Вопрос:
20. Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.
cpp
#include
#include
#include
using namespace std;
int main() {
vector кратные_8;
int num;
double sum = 0;
int count = 0;
while (cin >> num && num != 0) {
if (num % 8 == 0) {
кратные_8.push_back(num);
sum += num;
count++;
}
}
if (count == 0) {
cout << "NO" << endl;
} else {
cout << fixed << setprecision(1) << sum / count << endl;
}
return 0;
}
Объяснение:
1. Подключение библиотек: Подключаем iostream для ввода/вывода, vector для хранения чисел, iomanip для форматирования вывода.
2. Ввод чисел:
* Создаем вектор `кратные_8` для хранения чисел, кратных 8.
* В цикле считываем числа с клавиатуры до тех пор, пока не встретим 0.
* Если число кратно 8 (остаток от деления на 8 равен 0), добавляем его в вектор `кратные_8`, увеличиваем сумму `sum` и счетчик `count`.
3. Вывод результата:
* Если `count` равен 0 (т.е. чисел, кратных 8, не было), выводим "NO".
* Иначе вычисляем среднее арифметическое (sum / count) и выводим его с точностью до одной десятой.
Пример работы:
Ввод:
16 24 31 40 0
Вывод:
26.7
Ввод:
1 2 3 4 5 6 7 0
Вывод:
NO