минимальный элемент массива 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 шт):
Причина в том, что вы каждую итерацию цикла перезаписываете 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)
Вы постоянно устанавливаете минимум в цикле, что неправильно
Так же я бы заменил цикл
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)
Я бы на вашем месте отсортировал бы список и по индексу доставал значение
пример кода
massiv = []
dlina = int(input())
for y in range(0, dlina):
massiv.append(int(input()))
massiv.sort()
print(massiv[0])
во первых не очень хорошо использовать в качестве названия переменной название существующей функции
а ошибка в том, что присваивание минимального значения происходит внутри цикла, вынесите ее наружу цикла и все будет хорошо
кроме того зачем использовать <= при сравнении с минимальным значением, когда достаточно строгого меньше
ну и код поджать можно вот так еще:
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)