Показать сообщение отдельно
Старый 29.03.2012, 16:46   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

И что - не работает?
По тексту - вроде до перегруппировки (чет-нечет) всё правильно, за исключением того, что нужно предусмотреть ситуации, когда в массиве один ноль или нет нулей вовсе.
А вот тут:
Цитата:
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 не задано.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070