Задан массив из 20 чисел. Преобразовать его по следующему принципу: все отрицательные элементы перенести в начало массива, а все остальные в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива. Элементы массива не сортировать.
Буду очень благодарна за помощь :)
Answers & Comments
Verified answer
Const n=20;var a:array[1..n] of integer;
i,j,k,c:integer;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(51)-25;
write(a[i]:4);
end;
writeln;
k:=0;
for i:=1 to n do
if a[i]<0 then
begin
k:=k+1;
c:=a[i];
for j:=i-1 downto k do a[j+1]:=a[j];
a[k]:=c;
end;
for i:=1 to n do write(a[i]:4);
writeln;
end.
Пример:
5 25 24 -20 13 18 -2 21 -24 14 -2 -25 -18 13 23 11 22 -22 -21 -22
-20 -2 -24 -2 -25 -18 -22 -21 -22 5 25 24 13 18 21 14 13 23 11 22