@atsin4469

Почему переменная не меняет значение?

n = int(input())
largest = 1
not_largest = 1

for _ in range(n):
    x = int(input())
    if x > largest:
        largest = x
    if not_largest < x < largest:
        not_largest = x
print(largest)
print(not_largest)


На вход программе подаются натуральное число n≥2, а затем n различных натуральных чисел, каждое на отдельной строке. Нужно найти наибольшее число и следующее за ним по величине.

Почему переменная not_largest не меняет своего значения?
Если пустить на вход ряд 1, 2, 3, 4, 5, то в not_largest останется 1, хотя должна быть 4
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@AVIMIR
Сначала 2 запишется в largest, а потом идёт сравнение "если 2 меньше, чем 2 (x < largest)", что точно неверно => условие не выполняется. И так со всеми остальными числами.
spoiler
Я бы сделал через одно сравнение:
if x > largest:
largest, not_largest = x, largest
Таким образом мы получим новый максимум, а предыдущий автоматически запишется в пред_макс.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
29 нояб. 2024, в 07:44
20000 руб./за проект
29 нояб. 2024, в 04:45
5000 руб./за проект
29 нояб. 2024, в 04:42
5000 руб./за проект