Array101. Дан массив размера $$N$$ и целое число $$K$$ ($$1 \leq K \leq N$$). Перед элементом массива с порядковым номером $$K$$ вставить новый элемент с нулевым значением.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
program Array101; var a : array[1..10] of Integer; N,i,K:Integer; begin Write('N: '); Readln(N); Write('K: '); Readln(K); Writeln('A: '); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; N:=N+1; for i:=N downto K+1 do a[i]:=a[i-1]; a[k]:=0; Writeln(N); for i:=1 to N do writeln(i,' :',a[i]); end. |
Задачи из раздела Array можно посмотреть здесь.
Случай с K = 1 требует отдельного внимания.
Да… выходил за пределы массива. Поправил:
Было:
Стало:
Если N инициализировать значением 10, то будет ошибка выхода за границы массива, т.к. массив увеличивается на 1 элемент, а изначально (в 3 строке) описан массив из 10 элементов. Нужно добавить в описание еще хотя-бы один.
вместо :
можно: