В чем ошибка?

  • Автор темы Vlak
  • Дата начала
V

Vlak

Гость
#1
У меня функция add_sort которая доложна отсортировать список , подскажите в чем у еня ошибка ?К примеру у меня первое слово абажур а после выполнения этой функции у меня другое слово становится первым.*pbeg указатель на начало списка а *pend указатель на конец.s это массив(у меня слово) веденное с клавиатуры

C++:
void add_sort(A** pbeg, A** pend, char s[])  
{
A*pv=new A;
strcpy(pv->s,s);
A*pt=*pbeg;

while(pt) //prosmatrivaem spisok
{
if(strcmp(s, pt->s))
{
pv->next=pt;

if(pt==*pbeg) //v nachalo spiska
{
pv->prev=0;
*pbeg=pv;
}
else //v seredinu spiska
{
(pt->prev)->next=pv;
pv->prev=pt->prev;
}

pt->prev=pv;
return;
}

pt=pt->next;

}

pv->next=0; //v konec spiska
pv->prev=*pend;
(*pend)->next=pv;
*pend=pv;
}
 
V

Vlak

Гость
#3
Я сравниваю слово из списка со слово м веденным с клавиатуры.Вообще доложно возращать слово стоит перед ним или нет.
 

grigsoft

Well-Known Member
15.11.2005
735
0
#4
А ты почитай внимательно - что она возвращает, и как ты сравниваешь
 
V

Vlak

Гость
#5
Возвращает она лиюо 0 или 1 если я правильно понял.У меня что в этой строчке ошибка if(strcmp(s, pt->s))?
 
V

Vlak

Гость
#9
я так понял что у меня запись не правильная.