@dzzaad

Почему неправильно выводит максимальное число?

При заполнении numbers 10 9 8 7 6 5 4 3 2 1, как максимально число выводит 9. Почему?

numbers = input().split()
flag = 0
for i in range(len(numbers)):
    if numbers[i].isdigit() == True:
        flag += 1
if flag == len(numbers):
    for i in range(len(numbers)-1):
        print(numbers[i], numbers[i+1])
        if numbers[i] < numbers[i+1]:
            mx = numbers[i+1]
print(mx)
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Код работает ровно так, как написан.

Можете строчка за строчкой объяснить, что происходит в коде? Я начал, вы дополните в остальных строчках. Сразу должно стать понятно, где ошибка в логике:

numbers = input().split()               # получаем в numbers массив из отдельных слов в введенной строке
flag = 0                                # инициализируем счетчик нулем
for i in range(len(numbers)):           # проходимся по всей длине массива (по всем словам)
    if numbers[i].isdigit() == True:    # Если текущее слово состоит только из цифр (т.е. оно число)
        flag += 1                       # Увеличиваем счетчик
if flag == len(numbers):                # если все слова в строке - числа
    for i in range(len(numbers)-1):     # ???
        print(numbers[i], numbers[i+1]) # ???
        if numbers[i] < numbers[i+1]:   # ???
            mx = numbers[i+1]           # ???
print(mx)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы