Показать сообщение отдельно
  #10  
Старый 13.12.2009, 10:08
ХодячийБаг ХодячийБаг вне форума
Прохожий
 
Регистрация: 12.12.2009
Сообщения: 8
Репутация: 10
По умолчанию

Супер, сделал по пунктам, получилось вот что:


Код:
while not eof do
begin
 t:= nil;
 read(x); // получаем число
   if b = nil then // смотрим есть ли элементы в очереди
   inkol(b,e,nil,x) // если нет то добавляем
 else
 while q<> B do // если есть ищем максимальное (t указатель на максимальное)
 begin
  if q^.d > t^.d then
  t := q;
  q:=q^.ri;
 end;
 inkol(b,e,t,x); // вводим за максимальным
end;

всё, теперь сортирует без ошибок.. Но почемуто при вводе кольца, например:
1 2 3 4 5 6 7 8 9

выдает

9 8 7 6 5 4 3 2 1 1

тоесть добавляется лишняя единица. Ведь поидее while not eof уже должен был не проходить еще раз внутреннее тело, а он прошел и опять проработал inkol.
Ответить с цитированием