учись отлаживать свой код. Разбей программу на несколько основных блоков, и выводи информацию после каждого о том, какие действия этот блок сделал. С этими указателями очень легко запутаться. То есть опеделись, на каком этапе подкрадываютя нули: на вводе, на раделении или на выводе. Рекомендую сделать одну процедуру, которая выводит весь список на экран, и с помощью неё легко можно будет обнаружить, на каком этапе ошибка.
Добавлено через 11 минут и 50 секунд
Цитата(Truegirl @ 7.12.2009, 03:02 ) | if (elem^.t mod 2=0) then begin che^.t:=elem^.t; New(che^.p); che:=che^.p; end else begin nechet^.t:=elem^.t; New(nechet^.p); nechet:=nechet^.p; end; |
а вообще, по моему создавать новый элемент четного/нечетного списка нужно не после присваивания, а до него. И наче по выходу из цикла у тебя в конце останется один элемент, которому ты так и не присвоила никакого значеиня. |