Ответ: Исправление программы обработки цифр
1) При вводе 137 программа выведет 7. 2) Например, при вводе 123 программа выдаёт верный ответ 3. 3) Ошибочная строка: maxDigit = N % 10. Исправление: maxDigit = 0.
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 5. Если в числе нет цифр, меньших 5, требуется вывести «NO». Программист написал программу неправильно. Ниже приведён вариант программы на Python:
```python
N = int(input())
maxDigit = N % 10
while N > 0:
digit = N % 10
if digit < 5:
if digit > maxDigit:
maxDigit = digit
N = N // 10
if maxDigit == 0:
print("NO")
else:
print(maxDigit)
```
Последовательно выполните следующее:
1. Определите, что выведет программа при вводе числа 137.
2. Приведите пример трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в программе. Для каждой ошибки выпишите ошибочную строку и правильный вариант этой строки. Каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Где здесь ошибаются
Указать в качестве вывода для числа 137 значение 3, не учитывая ошибочную инициализацию maxDigit.
Считать ошибкой условие maxDigit == 0, хотя при корректной инициализации оно правильно обрабатывает отсутствие цифр, меньших 5.
Предложить переписать несколько строк программы вместо исправления только ошибочной строки.