Минимальное и максимальное число в списке

Запросить 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 шт):

Автор решения: Andrei

Вам нужно немного подправить свой алгоритм. Примерно как-то так:

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}' )
→ Ссылка
Автор решения: MarianD

Ваш код по сути правильный, нужно было только сделать 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_.


Объяснение:

  1. Чтобы найти самое большое значение, предположим сначала, что оно самое малое:
    переменной max_ присвоим сначала самое малое значение.

  2. Потому что в Питоне не существует самое малое целое число, мы поможем себе самым малым вещественным числом — отрицательной бесконечностью: float('-inf').

  3. Когда встретится число больше текущего наибольшего (if i > max_:), текущее наибольшее заменим ним (max_ = i).

  4. Подобным образом действуем для получения самого малого значения.

→ Ссылка
Автор решения: hedgehogues

У вас в коде существует несколько ошибок:

  1. Вы инициализировали переменные max и min как строки, но вам нужно будет сравнивать числа, поэтому эти переменные должны быть типа int или float.

  2. В цикле for вы пытаетесь сравнивать число i с переменной max, но это не имеет смысла, так как max изначально равно пустой строке. Вместо этого вам нужно сравнивать i с переменной max, которая хранит максимальное значение, которое вы нашли на данный момент.

  3. В цикле 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') соответстнно

→ Ссылка