Решение: Победитель математической викторины
Напишите программу для решения следующей задачи.
Девятиклассники участвовали в викторине по математике. Необходимо было ответить на 20 вопросов. Победителем викторины считается участник, правильно ответивший на наибольшее количество вопросов. На сколько вопросов победитель ответил правильно? Если есть участники викторины, которые не смогли дать правильный ответ ни на один из вопросов, выведите YES, иначе выведите NO. Гарантируется, что есть участники, правильно ответившие хотя бы на один из вопросов.
Программа получает на вход число участников викторины N (1 ≤ N ≤ 50), затем для каждого участника вводится количество вопросов, на которые получен правильный ответ.
Решение по шагам
4 шагаСчитываем количество участников. Так как гарантируется наличие хотя бы одного положительного результата, максимум можно начать со значения 0.
$$n = int(input())$$Для каждого участника считываем количество правильных ответов, обновляем максимум и запоминаем, встречался ли результат 0.
$$maximum = max(maximum, score)$$После обработки всех участников выводим максимальное количество правильных ответов и соответствующее сообщение.
$$print(maximum); print('YES' if has_zero else 'NO')$$Один из возможных вариантов программы:
$$n = int(input()) maximum = 0 has_zero = False for _ in range(n): score = int(input()) maximum = max(maximum, score) if score == 0: has_zero = True print(maximum) print('YES' if has_zero else 'NO')$$Программа должна вывести максимальное количество правильных ответов, затем YES, если среди результатов есть 0, и NO в противном случае.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Выводят количество участников вместо максимального результата.
Проверяют на ноль только результат победителя, а не результаты всех участников.
Забывают обработать все N результатов.
Выводят YES и NO в обратном порядке или в одной строке вместо двух.