2. Ввести в массив n произвольных чисел (n<=30) Отсортировать отрицательные по убыванию, положительные – по возрастанию, оставив отрицательные на местах, принадлежащих отрицательным, а положительные – на местах, принадлежащих положительным. Вывести на экран исходный и полученный массивы. Дополнительных массивов не использовать.
n = int(input("Введите количество чисел в массиве: ")) array = [] for i in range(n): num = int(input(f"Введите {i+1}-е число: ")) array.append(num) negatives = [x for x in array if x < 0] positives = [x for x in array if x >= 0] negatives.sort(reverse=True) positives.sort() result_array = [] neg_idx = 0 pos_idx = 0 for i in range(n): if array[i] < 0: result_array.append(negatives[neg_idx]) neg_idx += 1 else: result_array.append(positives[pos_idx]) pos_idx += 1 print("Исходный массив:", array) print("Полученный массив:", result_array)
Этот код позволяет ввести массив чисел, отсортировать отрицательные по убыванию, положительные по возрастанию и собрать исходный массив с таким же расположением отрицательных и положительных чисел, как в исходном массиве.
Пример реализации на языке Python:
n = int(input("Введите количество чисел в массиве: "))array = []
for i in range(n):
num = int(input(f"Введите {i+1}-е число: "))
array.append(num)
negatives = [x for x in array if x < 0]
positives = [x for x in array if x >= 0]
negatives.sort(reverse=True)
positives.sort()
result_array = []
neg_idx = 0
pos_idx = 0
for i in range(n):
if array[i] < 0:
result_array.append(negatives[neg_idx])
neg_idx += 1
else:
result_array.append(positives[pos_idx])
pos_idx += 1
print("Исходный массив:", array)
print("Полученный массив:", result_array)
Этот код позволяет ввести массив чисел, отсортировать отрицательные по убыванию, положительные по возрастанию и собрать исходный массив с таким же расположением отрицательных и положительных чисел, как в исходном массиве.