@ArmyDone

Как найти наименьшее отрицательное значение?

Все работает, кроме нахождения наименьшего отрицательного элемента, помогите пожалуйста.
Код программы
a=[]
print('Введите количество значений в массиве')
n=int(input())
for i in range(n):
    print("Введите значение "+str(i+1))
    a.append(int(input()))
print("Введенные числа "+str(a))

res=[]
mx=0
for i in range(len(a)):
    if a[i]<0:
        res+=[i]
if len(res)>0:
    for i in range(len(res)):
        if res[i]<mx:
            mx=res[i]
    print("отрицательные числа под номерами "+str(res))
    print(mx)
else:
    print("Не нашли")
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
@o5a
Как найти наименьшее отрицательное значение?

Все работает, кроме нахождения наименьшего отрицательного элемента

Интересная формулировка ;)

Проблема здесь:
if a[i]<0:
    res+=[i]

В этом цикле ведь i - это не значение (число), а индекс числа. Т.е. в список отрицательных чисел попадают не сами числа, а их индексы. Думаю, понятно, как исправить?

И вообще, для перебора самих элементов списка не нужно прибегать к конструкциям range(len(a)), можно перебирать сами элементы:
for n in a:
    if n<0:
    ...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mrxor
Simple is better than complex
min(a)
А в вашем коде вы индекс элемента с mx сравниваете, а не значение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы