2. Ввести в массив n произвольных чисел (n<=30) Отсортировать отрицательные по убыванию, положительные – по возрастанию, оставив отрицательные на местах, принадлежащих отрицательным, а положительные – на местах, принадлежащих положительным. Вывести на экран исходный и полученный массивы. Дополнительных массивов не использовать.
n = int(input("Введите количество элементов в массиве: ")) arr = [] neg_index = 0 pos_index = n - 1 for i in range(n): arr.append(int(input(f"Введите {i+1}-й элемент массива: "))) arr.sort(reverse=True) for i in range(n): if arr[i] < 0: arr[neg_index] , arr[i] = arr[i], arr[neg_index] neg_index += 1 for i in range(n-1, -1, -1): if arr[i] > 0: arr[pos_index], arr[i] = arr[i], arr[pos_index] pos_index -= 1 print("Исходный массив:", arr)
Пример работы программы:
Введите количество элементов в массиве: 8 Введите 1-й элемент массива: -5 Введите 2-й элемент массива: 7 Введите 3-й элемент массива: -2 Введите 4-й элемент массива: 3 Введите 5-й элемент массива: -1 Введите 6-й элемент массива: 0 Введите 7-й элемент массива: -4 Введите 8-й элемент массива: 6 Исходный массив: [-5, 7, -2, 3, -1, 0, -4, 6]
Пример кода на Python:
n = int(input("Введите количество элементов в массиве: "))arr = []
neg_index = 0
pos_index = n - 1
for i in range(n):
arr.append(int(input(f"Введите {i+1}-й элемент массива: ")))
arr.sort(reverse=True)
for i in range(n):
if arr[i] < 0:
arr[neg_index] , arr[i] = arr[i], arr[neg_index]
neg_index += 1
for i in range(n-1, -1, -1):
if arr[i] > 0:
arr[pos_index], arr[i] = arr[i], arr[pos_index]
pos_index -= 1
print("Исходный массив:", arr)
Пример работы программы:
Введите количество элементов в массиве: 8Введите 1-й элемент массива: -5
Введите 2-й элемент массива: 7
Введите 3-й элемент массива: -2
Введите 4-й элемент массива: 3
Введите 5-й элемент массива: -1
Введите 6-й элемент массива: 0
Введите 7-й элемент массива: -4
Введите 8-й элемент массива: 6
Исходный массив: [-5, 7, -2, 3, -1, 0, -4, 6]