Предмет: Информатика, автор: 12adelina

ДАЮ ПОСЛЕДНИЕ 50 БАЛЛОВ ПОЖАЛУЙСТА ПОМОГИТЕ!!! Нужно написать код на языке Python, если не сможете приму и на с++!!! очень ВАЖНО, ПОЖАЛУЙСТА!!! Вставка числа
Требуется вставить в данный массив на данное место данный элемент, сдвинув остальные элементы вправо.

Входные данные

В первой строке вводится одно натуральное число, не превосходящее 1000 — размер массива. Во второй строке задаются N чисел — элементы массива (целые числа, не превосходящие по модулю 1000). В третьей строке вводится число, которое необходимо вставить, и номер места, на которое его нужно вставить.

Выходные данные

Вывести получившийся массив.

Примеры
Ввод 1
5
1 2 3 4 5
2 3
Вывод
1 2 2 3 4 5
ОЧЕНЬ ВАЖНО, ПОЖАЛУЙСТА

Ответы

Автор ответа: XeonNull
5

Ответ:

n = int(input())

array = []

for i in input().split():

   array.append(int(i))

k, j = input().split()

k, j = int(k), int(j)

array = array[:j - 1] + [k] + array[j - 1:]

ret = str(array[0])

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

   ret = ret + ' ' + str(array[i])

print(ret)

Объяснение:

слайсами суммируем массив


12adelina: это питон или с++
12adelina: просто не разбираюсь в этой теме
XeonNull: питон
XeonNull: если сириус то пройдет)
12adelina: программа выдаёт ошибку в процессе выполнения
KnowsUser1: объекты List в Python имеют метод insert(pos, item), вставляющий в список элемент item на позицию pos, сдвигая остальные элементы вправо. Считать j и k (элемент и позицию) можно было сразу приводя их к нужному типу. Для вывода массива в строку вы просто могли использовать префикс " * " перед именем списка в вызове print(). Так же вы могли использовать строковый метод join
12adelina: спасибо
12adelina: можете с этим помочь пожалуйста
12adelina: Дан список из 10 элементов:
8 1 7 4 3 9 2 5 6 10

Как будет выглядеть список после 3-х шагов вставки в алгоритме сортировки вставками?

Введите список чисел, разделённых пробелами.

1 попытка
Автор ответа: KnowsUser1
1

Ответ:

Используя метод list.insert

N = int(input())

arr = [int(i) for i in input().split()]

assert len(arr) == N #Пользователь обязан ввести ровно N чисел. Иначе вылет с исключением AssertionError

insItem, insPos = [int(i) for i in input().split()]

arr.insert(insPos, insItem)

print(arr)

Программа очень требовательна к формату ввода.

Объяснение:


12adelina: не получается
KnowsUser1: Обожаю, когда люди отвечают что то подобное. Приведите ошибку, на какой строке она вызывается, что вы вводите, что бы получить эту ошибку
KnowsUser1: я же не экстрасенс, что бы угадать, что конкретно вы сломали в программе из 5 строк. Я её тестировал, у меня она вполне себе работала
Mrkrutoy100: Его скорее всего не устраивают квадратные скобки в ответе
pavlyukjulya: вывод даёт 1 2 3 2 4 5
KnowsUser1: очень о многом говорит, знаете ли. Что вы вводите то хоть?
pavlyukjulya: Ввод
5
1 2 3 4 5
2 3
Вывод по этой программе (от квадратных скобок избавилась)
1 2 3 2 4 5
KnowsUser1: а что не так? он вам засунул в исходный массив цифру 2, под индекс 3. Как и требовалось в задании
Похожие вопросы
Предмет: Математика, автор: pderigler