Заполнить вводом с клавиатуры численный массив за исключением последнего элемента, вывести его на экран. Запросить еще одно значение и его позицию в массиве. Вставить указанное число в заданную позицию, подвинув элементы после него.
Перед тем, как вставить элемент в заданную позицию массива, надо все элементы начиная с этой позиции передвинуть на один назад. То есть когда пользователь указывает, в какую позицию он хочет вставить элемент, то мы сдвигаем по очереди начиная с конца все элементы до этой позиции включительно. Таким образом ячейка с указанным номером становится свободной и в нее можно вставить заданное число.
Pascal
const n = 6;
var
arr: array[1..n] of integer;
i, num, id: integer;
begin
writeln('Заполните массив: ');
for i := 1 to n - 1 do
readln(arr[i]);
write('Ваш массив: ');
for i := 1 to n - 1 do
write(arr[i]:5);
writeln;
write('Укажите еще один элемент: ');
readln(num);
write('Позиция в массиве: ');
readln(id);
for i := n - 1 downto id do
arr[i+1] := arr[i];
arr[id] := num;
write('Ваш массив: ');
for i := 1 to n do
write(arr[i]:5);
writeln;
end.
2
4
5
7
9
Ваш массив: 2 4 5 7 9
Укажите еще один элемент: 8
Позиция в массиве: 5
Ваш массив: 2 4 5 7 8 9
Язык Си
#include
main() {
int a[6], i, j, n;
for (i=0; i < 5; i++)
scanf("%d", &a[i]);
printf("Число: ");
scanf("%d", &n);
printf("Позиция: ");
scanf("%d", &j);
for (i=4; i >= j-1; i--)
a[i+1] = a[i];
a[j-1] = n;
for (i=0; i<6; i++)
printf("%d ", a[i]);
printf("\n");
}
45 3 3 4 22
Число: 45
Позиция: 3
45 3 45 3 4 22
Python
# 1-й вариант:
a = []
N = 5
for i in range(N):
num = int(input())
a.append(num)
print(a)
num = int(input("Число: "))
j = int(input("Позиция: "))
a.append(num)
while N > j-1:
a[N], a[N-1] = a[N-1], a[N]
N -= 1
print(a)
# 2-й вариант:
a = []
N = 5
for i in range(N):
num = int(input())
a.append(num)
print(a)
num = int(input("Число: "))
j = int(input("Позиция: "))
a.insert(j-1,num)
print(a)
# 3-й вариант:
a = []
N = 5
for i in range(N):
num = int(input())
a.append(num)
print(a)
num = int(input("Число: "))
j = int(input("Позиция: "))
Здесь используется немного иной алгоритм. Сначала в конец добавляется новый элемент, а потом происходит перемещение этого элемента обменом с соседними до указанной позиции.
Во втором способе используется метод insert() списков, а в третьем - создается новый список из срезов.
КуМир
алг вставка элемента
нач
цел N = 6
цел таб arr[1:N]
цел i, num, id
вывод "Заполните массив: ", нс
нц для i от 1 до N-1
ввод arr[i]
кц
вывод "Ваш массив: "
нц для i от 1 до N-1
вывод arr[i], " "
кц
вывод нс
вывод "Число: "
ввод num
вывод "Позиция: "
ввод id
нц для i от N-1 до id шаг -1
arr[i+1] := arr[i]
кц
arr[id] := num;
вывод "Ваш массив: "
нц для i от 1 до N
вывод arr[i], " "
кц
кон
var arr: array[1..n] of integer; i, num, id: integer;
begin writeln('Заполните массив: '); for i := 1 to n - 1 do readln(arr[i]); write('Ваш массив: '); for i := 1 to n - 1 do write(arr[i]:5); writeln;
write('Укажите еще один элемент: '); readln(num); write('Позиция в массиве: '); readln(id);
for i := n - 1 downto id do arr[i+1] := arr[i]; arr[id] := num;
write('Ваш массив: '); for i := 1 to n do write(arr[i]:5); writeln; end.
2 4 5 7 9 Ваш массив: 2 4 5 7 9 Укажите еще один элемент: 8 Позиция в массиве: 5 Ваш массив: 2 4 5 7 8 9
Язык Си
#include
main() { int a[6], i, j, n; for (i=0; i < 5; i++) scanf("%d", &a[i]); printf("Число: "); scanf("%d", &n); printf("Позиция: "); scanf("%d", &j); for (i=4; i >= j-1; i--) a[i+1] = a[i]; a[j-1] = n; for (i=0; i
Python
# 1-й вариант:
a = [] N = 5 for i in range(N): num = int(input()) a.append(num) print(a) num = int(input("Число: ")) j = int(input("Позиция: ")) a.append(num) while N > j-1: a[N], a[N-1] = a[N-1], a[N] N -= 1 print(a)
# 2-й вариант:
a = [] N = 5 for i in range(N): num = int(input()) a.append(num) print(a) num = int(input("Число: ")) j = int(input("Позиция: "))
a.insert(j-1,num)
print(a)
# 3-й вариант:
a = [] N = 5 for i in range(N): num = int(input()) a.append(num) print(a) num = int(input("Число: ")) j = int(input("Позиция: "))
Здесь используется немного иной алгоритм. Сначала в конец добавляется новый элемент, а потом происходит перемещение этого элемента обменом с соседними до указанной позиции.
Во втором способе используется метод insert() списков, а в третьем - создается новый список из срезов.
КуМир
алг вставка элемента нач цел N = 6 цел таб arr[1:N] цел i, num, id вывод "Заполните массив: ", нс нц для i от 1 до N-1 ввод arr[i] кц вывод "Ваш массив: " нц для i от 1 до N-1 вывод arr[i], " " кц вывод нс вывод "Число: " ввод num вывод "Позиция: " ввод id нц для i от N-1 до id шаг -1 arr[i+1] := arr[i] кц arr[id] := num; вывод "Ваш массив: " нц для i от 1 до N вывод arr[i], " " кц кон