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