c语言的排序问题
fcfs_pointer sort(fcfs_pointer p){
float i,j;
char c;
fcfs_pointer q,l;
q=l=p->next;
while(l!=NULL)
{
if(q!=NULL)
{
if((l->arrivetime) > (q->arrivetime))
{
c=l->name;
l->name=q->name;
q->name=c;
j=l->arrivetime;
l->arrivetime=q->arrivetime;
q->arrivetime=j;
i=l->servicetime;
l->servicetime=q->servicetime;
q->servicetime=i;
q=q->next;
}
else
q=q->next;
}
else
{
q=l->next;
l=l->next;
}
}
return p;
}
这个子程序在排序的时候 总是把相同的数字 顺序颠倒 。。。而其他的顺序都一切正常。。。帮我看看到底哪里出问题了。。
比如说 a==0 b==1 c==2 d==0 那么排序之后就会变成
d==0 a==0 b==1 c==2 这是按升序排列的。。不想等的数字顺序都好着 就是相同的数字就会被颠倒。。按理说a应该在d的前边啊..
帮我看看