• На python.В массиве из 10 вещественных чисел отсортировать в порядке убывания все отрицательные элементы. Положительные и нулевые элементы оставить на своих местах.

Ответы 1

  • Ответ: Попробуй это, надеюсь, правильно понял задание:

    def task():

       numbers = input("Введите массив чисел через пробел: ")

       array = list(numbers.split())

       negativelist = []

       loopint = 0

       for i in range(0, len(array)):

           array[i] = int(array[i])

       while loopint < len(array):

           if array[loopint] < 0:

               negativelist.append(array[loopint])

           else:

               pass

           loopint = loopint + 1

           

       negativelist.sort()

       final_list = negativelist + array

       result = []

       for i in final_list:

           if i not in result:

               result.append(i)

       print(result)

    Объяснение:

    1)Объявляем функцию task() без параметров;

    2)Ждем ввода чисел с помощью input();

    3)Превращаем введенные числа в массив с помощью list(), предварительно разбив их по пробелам с помощью split();

    4)Так как нужно отсортировать только негативные элементы, нам нужен будет отдельный массив негативных чисел, создаем пустой лист negativelist и переменную для loop'a loopint;

    5)Превращаем все введенные элементы в числа с помощью for loop и функции int();

    6)Производим итерацию через массив чисел и, если число меньше 0, добавляем его в лист отрицательных чисел negativelist с помощью функции append(), если же число не отрицательное, то ничего не делаем (pass). Не забываем про луп-переменную.

    7)Теперь когда у нас есть отдельный список отрицательных чисел, сортируем его с помощью sort();

    8)Объявляем новый список, где отрицательный массив добавляется к введенному пользователем массиву так, чтобы отрицательные числа были слева. Теперь у нас есть отсортированные отрицательные числа слева, но они также остались и на своих первоначальных местах изначально введенного массива, нужно избавиться от них;

    9)Сравниваем два массива и, если нет дупликатов, добавляем их в конечный массив result, при этом не трогая неотрицательные числа.

    Важно: эта программа будет работать правильно, если все введенные числа будут уникальны, то есть не будут повторяться. Если в массиве будут повторяющиеся числа, то в конечном результате появится только одно такое число. Дальше уж сам поколдуй как-нибудь.

    • Автор:

      Óscar85
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years