минимальный элемент массива python

Нужно найти минимальный элемент массива, введенного с консоли, при этом не используя функцию min

massiv = []
dlina = int(input())
for y in range(0, dlina):
    massiv.append(int(input()))
for i in range(0, len(massiv)):
    min = massiv[0]
    if massiv[i] <= min:
        min = massiv[i]
print(min)

Не могу понять, почему выводит правильный ответ через раз.


Ответы (4 шт):

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

Причина в том, что вы каждую итерацию цикла перезаписываете min нулевым элементом массива. Строку min = massiv[0] нужно вынести до цикла, вот так:

massiv = []
dlina = int(input())
for y in range(0, dlina):
    massiv.append(int(input()))
min = massiv[0]
for i in range(0, len(massiv)):
    if massiv[i] <= min:
        min = massiv[i]
print(min)
→ Ссылка
Автор решения: Andrey Maslov

Вы постоянно устанавливаете минимум в цикле, что неправильно

Так же я бы заменил цикл

massiv = []
dlina = int(input())
for y in range(0, dlina):
    massiv.append(int(input()))
min_value = massiv[0]
for number in massiv:
    if number < min_value:
        min_value = number
print(min_value)
→ Ссылка
Автор решения: Andromeda

Я бы на вашем месте отсортировал бы список и по индексу доставал значение

пример кода

massiv = []
dlina = int(input())
for y in range(0, dlina):
    massiv.append(int(input()))

massiv.sort()

print(massiv[0])
→ Ссылка
Автор решения: Zhihar

во первых не очень хорошо использовать в качестве названия переменной название существующей функции

а ошибка в том, что присваивание минимального значения происходит внутри цикла, вынесите ее наружу цикла и все будет хорошо

кроме того зачем использовать <= при сравнении с минимальным значением, когда достаточно строгого меньше

ну и код поджать можно вот так еще:

data = [int(input()) for y in range(0, int(input()))]

value_min = data[0]
for value in data:
    value_min = value if value_min > value else value_min

print(value_min)
→ Ссылка