Tarlan
Июнь 30, 2020 00:02:40
Пожалуйста, помогите мне! Не могу сделать это целую неделю
На вход программе подаётся натуральное число n, а затем n различных натуральных чисел, каждое на отдельной строке. Напишите программу, которая выводит наибольшее и второе наибольшее число последовательности.
Формат входных данных:
На вход программе подаются натуральное число n => 2, а затем n различных чисел, каждое на отдельной строке
Формат выводных данных:
Программа должна вывести два наибольших числа, каждое на отдельной строке
Пример:
Ввод
5
1
2
3
4
5
Вывод
5
4
ZerG
Июнь 30, 2020 09:08:45
Покажите код.
Будем смотреть что у вас не получается.
Как вариант - можете все вводимые числа занести в с писок. Потом сделать сортировку списка и вывести два егопервых члена.
Tarlan
Июнь 30, 2020 11:11:28
ZerG
Покажите код. Будем смотреть что у вас не получается. Как вариант - можете все вводимые числа занести в с писок. Потом сделать сортировку списка и вывести два егопервых члена.
largest = 0
pre_largest = 0
n = int(input())
for i in range(0, n):
num = int(input())
if num > largest:
largest = num
elif pre_largest > num > largest:
pre_largest = num
print(largest)
print(pre_largest)
Что я должен сделать?
Tarlan
Июнь 30, 2020 11:39:23
ZerG
Тег код.
извините я новичок, я не знаю что это
ZerG
Июнь 30, 2020 12:46:10
Иди читай лутца. В следущий раз за такой вопрос будешь забанен.
numbers = [] # Список полученных чисел
# количество вводимых символов
numbers_count = int(input("Введите количество символов для ввода: "))
# Главный цикл
for count in range(0, numbers_count):
# Пока длина списка не станет равна количеству вводимых символов повторяем действие
while len(numbers) < numbers_count:
# Проверяем что мы ввели именно число
try:
number = int(input(f"Введите число №{len(numbers) + 1}: "))
# Заполняем список
numbers.append(number)
except:
print("Вы ввели не число. Попроуйте еще раз!")
print(f"Ввод чисел окончен.")
# удалим дубликаты
result = list(set(numbers))
# Отсортируем список
result = sorted(result)
# выведем данные
print(f"Наибольшее число: {result[len(result) -1]}")
print(f"Предыдущее наибольшее число: {result[len(result) - 2]}")
serafim
Дек. 19, 2020 10:11:26
ZerG
Иди читай лутца. В следущий раз за такой вопрос будешь забанен.
товарищ эту задачу нужно было иначе решить не используя списки.
py.user.next
Дек. 19, 2020 10:31:07
serafim
нужно было иначе решить не используя списки
Списки не нужны здесь (можно и миллион элементов подать)
>>> def f():
... n = int(input())
... out1 = out2 = None
... for _ in range(n):
... number = int(input())
... if out2 is None:
... out2 = number
... elif number > out2:
... if out1 is None:
... out1 = number
... elif number > out1:
... out2 = out1
... out1 = number
... else:
... out2 = number
... print(out1, out2, sep='\n')
...
>>> f()
5
1
2
3
4
5
5
4
>>> f()
10
3
2
1
15
4
5
100
8
9
20
100
20
>>>