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