В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Реализация (python 3):
max, max2 = int(input()), int(input())
if max2 > max:
max, max2 = max2, max
while True:
t = int(input())
if t == 0: break
if t > max:
max, max2 = t, max
elif t > max2:
max2 = t
print(max2)
Пример ввода:
5
1
3
2
4
0
Пример вывода:
4
и так таких чисел 24!