Для решения этой задачи на C++ можно использовать циклы и условные операторы.
1. Сначала объявим переменные: `N` – количество учеников в классе, `totalProblems` – общее количество примеров, `badGrades` – количество неудовлетворительных оценок, `allSolved` – флаг, показывающий, решил ли хотя бы один ученик все примеры. Инициализируем `badGrades` и `allSolved` нулями.
2. Запросим у пользователя значение `N` – количество учеников.
3. Затем воспользуемся циклом `for`, который будет повторяться `N` раз, чтобы ввести количество правильно решенных примеров для каждого ученика. Внутри цикла будем запрашивать число `solvedProblems`, принимающее значение от 0 до `totalProblems` (10 в данном случае).
4. В теле цикла проверим условие, если `solvedProblems` больше половины от `totalProblems`, то увеличим `badGrades` на 1. Если `solvedProblems` равно `totalProblems`, то установим флаг `allSolved` в значение 1.
5. После окончания цикла проверим значение флага `allSolved`. Если оно равно 1, выведем “YES”, иначе выведем “NO”.
6. Выведем количество неудовлетворительных оценок (`badGrades`).
Вот код решения на C++:
“`cpp
#include
int main() {
int N, totalProblems = 10, badGrades = 0, allSolved = 0;
std::cout << "Введите количество учеников в классе: ";
std::cin >> N;
for (int i = 0; i < N; i++) { int solvedProblems; std::cout << "Введите количество правильно решенных примеров для ученика " << i+1 << ": "; std::cin >> solvedProblems;
if (solvedProblems > totalProblems / 2) {
badGrades++;
}
if (solvedProblems == totalProblems) {
allSolved = 1;
}
}
if (allSolved == 1) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
std::cout << "Количество неудовлетворительных оценок: " << badGrades << std::endl;
return 0;
}
```
После выполнения программы выведется "YES", если хотя бы один ученик решил все задачи, или "NO" в противном случае. Также будет выведено количество неудовлетворительных оценок.