
Ревью кода - 9 На обработку поступает последовательность из 4 целых чисел. Известно, что вводимые
числа по абсолютной величине не превышают 10^610 6 . Нужно написать программу, которая выводит на экран количество нечётных чисел в исходной последовательности и максимальное нечётное число. Если нечётных чисел нет, требуется на экран вывести «NO». Программист торопился и написал программу неправильно. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Примечание. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. n = 4 count = 0 maximum = 999 for i in range(1, n + 1): x = int(input()) if x % 2 != 0: count += 1 if x > maximum: maximum = i break if count > 0: print(count) print(maximum) else: print('NO')

Ответы на вопрос

Ответ:
n = 4
count = 0
maximum = -999999
for i in range(1, n + 1):
....x = int(input())
....if x % 2 != 0:
........count += 1
........if x > maximum:
............maximum = x
if count > 0:
....print(count)
....print(maximum)
else:
....print('NO')



Программа имеет несколько ошибок. Давайте их поочередно исправим:
Ошибка в инициализации переменной
maximum
. Вместо 999, нам нужно использовать начальное значение, которое гарантированно превышает любое возможное входное значение. Давайте установимmaximum
в минус бесконечность (negative infinity).Ошибка в строке сравнения
if x > maximum: maximum = i break
. В этой строке, мы должны обновлятьmaximum
значениемx
, а неi
. Также, не нужно использоватьbreak
, так как это завершит цикл раньше времени. Используемmaximum = x
.Ошибка в строке
print(maximum)
. Здесь мы должны выводить значениеmaximum
, а неi
.
Вот исправленный код:
pythonn = 4
count = 0
maximum = float('-inf') # Используем минус бесконечность как начальное значение maximum
for i in range(1, n + 1):
x = int(input())
if x % 2 != 0:
count += 1
if x > maximum:
maximum = x
if count > 0:
print(count)
print(maximum)
else:
print('NO')
Теперь программа должна работать корректно и выводить количество нечётных чисел и максимальное нечётное число из последовательности.


Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili