| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:c语言的排序问题
只看楼主 加入收藏
jeffers0054
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-9
收藏
 问题点数:0 回复次数:1 
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的前边啊..
帮我看看
搜索更多相关主题的帖子: c语言 
2008-11-09 00:19
jeffers0054
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-9
收藏
得分:0 
程序已经自己改好了  错误出在((l->arrivetime) > (q->arrivetime))


应该为((l->arrivetime) >= (q->arrivetime))
2008-11-09 02:03
快速回复:c语言的排序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018200 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved