И что - не работает?
По тексту - вроде до перегруппировки (чет-нечет) всё правильно, за исключением того, что нужно предусмотреть ситуации, когда в массиве один ноль или нет нулей вовсе.
А вот тут:
Цитата:
for i:=1 to n do
if i mod 2<>0 then
begin
k:=k+1;
x:=a[i];
for j:=i downto k+1 do
a[i]:=a[j-1];
a[k]:=x;
end;
|
я что-то совсем разобраться не могу - уж очень мудрёно. Я бы действовал по рабоче-крестьянски: организовал второй массив да и перегнал бы в него элементы первого - сперва стоящие на четных, потом на нечетных позициях. Нет, я не утверждаю, что у Вас неправильно - просто пока понять алгоритм не могу. Кстати, исходное значение k не задано.