Минимальное и максимальное число в списке
Запросить 5 чисел в список ,и найти в этом списке мин и макс число с помощью цикла (запрещено
min,max,sorted,sort). Вывести эти числа
A = []
max = ''
min = ''
a = int(input('Введите целое число...'))
c = int(input('Введите целое число...'))
d = int(input('Введите целое число...'))
e = int(input('Введите целое число...'))
f = int(input('Введите целое число...'))
A += a,c,d,e,f
for i in A:
if i == max:
max += i
else:
min += i
print(f'Максимальное: {max}' , f'Минимальное: {min}' )
Зашел в тупик. Разъясните где не прав.
Ответы (3 шт):
Вам нужно немного подправить свой алгоритм. Примерно как-то так:
A = []
for _ in range(5):
a = int(input('Введите целое число...'))
A.append(int(a))
m_max = A[0]
m_min = A[0]
for i in A:
if m_max < i:
m_max = i
if m_min > i:
m_min = i
print(f'Максимальное: {m_max}' , f'Минимальное: {m_min}' )
Ваш код по сути правильный, нужно было только сделать 5 правок:
A = []
max_ = float('-inf') # здесь
min_ = float('inf') # здесь
a = int(input('Введите целое число...'))
c = int(input('Введите целое число...'))
d = int(input('Введите целое число...'))
e = int(input('Введите целое число...'))
f = int(input('Введите целое число...'))
A += a, c, d, e, f
for i in A:
if i > max_:
max_ = i # здесь
if i < min_: # здесь
min_ = i # здесь
print(f'Максимальное: {max_}' , f'Минимальное: {min_}' )
К тому же я изменил ваши имена max и min (которые являются именами стандартных функций) на max_ и min_.
Объяснение:
Чтобы найти самое большое значение, предположим сначала, что оно самое малое:
переменнойmax_присвоим сначала самое малое значение.Потому что в Питоне не существует самое малое целое число, мы поможем себе самым малым вещественным числом — отрицательной бесконечностью:
float('-inf').Когда встретится число больше текущего наибольшего (
if i > max_:), текущее наибольшее заменим ним (max_ = i).Подобным образом действуем для получения самого малого значения.
У вас в коде существует несколько ошибок:
Вы инициализировали переменные
maxиminкак строки, но вам нужно будет сравнивать числа, поэтому эти переменные должны быть типаintилиfloat.В цикле
forвы пытаетесь сравнивать числоiс переменнойmax, но это не имеет смысла, так как max изначально равно пустой строке. Вместо этого вам нужно сравниватьiс переменной max, которая хранит максимальное значение, которое вы нашли на данный момент.В цикле
forвы пытаетесь добавить числоiк переменнымmaxиmin, но это неверно, так как вы перезаписываете значения этих переменных. Вместо этого вам нужно сравниватьiс значениемmaxиminи обновлять эти значения, еслиiбольше или меньше соответственно.
Для того, чтобы найти минимальное и максимальное число в списке A, вам нужно изменить код следующим образом:
A = []
max = float('-inf') # Максимальное значение инициализируем минимальным возможным значением float
min = float('inf') # Минимальное значение инициализируем максимальным возможным значением float
a = int(input('Введите целое число...'))
c = int(input('Введите целое число...'))
d = int(input('Введите целое число...'))
e = int(input('Введите целое число...'))
f = int(input('Введите целое число...'))
A += a,c,d,e,f
for i in A:
if i > max: # Обновляем значение max, если i больше текущего значения max
max = i
if i < min: # Обновляем значение min, если i меньше текущего значения min
min = i
print(f'Максимальное: {max}' , f'Минимальное: {min}' )
В этом коде мы инициализируем переменные max и min с помощью констант float('-inf') и float('inf') соответстнно