| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 250 人关注过本帖
标题:这个对连表进行排序的函数不知道错在那里 请各位指教一下 谢谢
收藏  订阅  推荐  打印 
5646
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-1-6
这个对连表进行排序的函数不知道错在那里 请各位指教一下 谢谢

struct student
{
    char num[4];
    char name[100];
    float score;
    struct student*next;
};
void paixu(struct student*p,int n)  //n是连表的接点数//
{
    struct student temp,*head;
    int i,j;
    head=p;
    for(i=0;i<n-1;i++)
        {for(j=0;j<n-i;j++)
            {if(strcmp(p->num,(p->next)->num)>0)
               {strcpy(temp.num,p->num);
                strcpy(p->num,(p->next)->num);
                strcpy((p->next)->num,temp.num);
                strcpy(temp.name,p->name);
                strcpy(p->name,(p->next)->name);
                strcpy((p->next)->name,temp.name);
                temp.score=p->score;
                p->score=(p->next)->score;
                (p->next)->score=temp.score;}
                p=p->next;
            }
         p=head;} //在下一伦开始时使p回到head//   
}
搜索更多相关主题的帖子: num  函数  student  strcpy  temp  
2008-1-6 21:06
nianshi
Rank: 3Rank: 3
等级:中级会员
帖子:193
积分:2111
注册:2007-11-7

你这就是个结构体数组元素冒泡排序
这样改:
if(strcmp(p[j]->num,(p[j+1])->num)>0)
               {strcpy(temp.num,p[j]->num);
                strcpy(p[j]->num,p[j+1]->num);
                strcpy(p[j+1]->num,temp.num);}
下面的姓名和成绩可参照这个改

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2008-1-7 12:01
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047615 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved