+ 1

Почему не работает?

Наибольшие числа 🌶️🌶️ На вход программе подается натуральное число nn, а затем nn различных натуральных чисел, каждое на отдельной строке. Напишите программу, которая выводит наибольшее и второе наибольшее число последовательности. Формат входных данных На вход программе подаются натуральное число n \ge 2n≥2, а затем nn различных натуральных чисел, каждое на отдельной строке. Формат выходных данных Программа должна вывести два наибольших числа, каждое на отдельной строке. a = int(input()) t1=0 t2=0 for i in range(a): q=int(input()) if q>t1 and q<t2: t1=q if q<t1 and q>t2: t2=q print(t2) print(t1)

16th Dec 2021, 12:43 PM
Илья
Илья - avatar
3 odpowiedzi
+ 2
Подставь, например, 1. 1>0 и 1<0 - ложь. Со вторым условием тоже ложь. Пусть т1 - самое большое число. Чтобы занять т1 нужно, чтобы число было больше или равно т1. В начале сделай так, чтобы т1 и т2 были самым маленьким целым числом. (Посмотри в интернете) Создай буферную переменную (temp) temp = t1 t1 = q t2 = temp Это всё в первом условии (if q>= t1:) Второе условие убери. Вроде всё должно работать. Я не проверял. Если что-то не получится - пиши.
16th Dec 2021, 6:16 PM
None
+ 1
Спасибо. Заработало. a = int(input()) t1=-1 t2=-1 for i in range(a): q=int(input()) if q>t1: t2=t1 t1=q elif q>t2: t2=q print(t1) print(t2)
16th Dec 2021, 7:03 PM
Илья
Илья - avatar
0
👍
16th Dec 2021, 7:06 PM
None