免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3206 | 回复: 5
打印 上一主题 下一主题

新学c,求一个“结构体数组排序的程序” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-10 10:26 |只看该作者 |倒序浏览
要求:不改变结构体原来的结构,用结构体数组指针打印顺序。
(如:5个学生的姓名和成绩存在结构体数组中,按成绩进行排序)

论坛徽章:
0
2 [报告]
发表于 2004-07-10 11:49 |只看该作者

新学c,求一个“结构体数组排序的程序”

qsort
std::sort

论坛徽章:
0
3 [报告]
发表于 2004-07-10 11:52 |只看该作者

新学c,求一个“结构体数组排序的程序”

编程时交换指针,不要交换结构体数据。

论坛徽章:
0
4 [报告]
发表于 2004-07-23 14:46 |只看该作者

新学c,求一个“结构体数组排序的程序”

定义一个指针数组指向所需要排序的数据, 然后对这个指针数组进行 qsort

论坛徽章:
0
5 [报告]
发表于 2004-10-26 00:31 |只看该作者

新学c,求一个“结构体数组排序的程序”

class Book
{   private :
    char * bookname;
    char * author;
    int salsenumber;
   
    public :
        Book(){}
        Book(const char * ,const char * ,int);
        ~Book();
        char * getAuthor(){return author;}
        char * getName(){return bookname;}
        int getSalseNumber(){return salsenumber;}
        void setbook(const char * bkname,const char * auth,int snub);
        void print(ostream& output);
};   

void Booksort(Book bn[],int ns)
{   
    int i,j,pick;
    Book temp;
    for(i=0;i<ns-1;i++)
    {
        pick=i;
        for(j=i+1;j<ns;j++)
        {   
            cout<<bn[j].getSalseNumber()<<"-"<<bn[pick].getSalseNumber()<<endl;
            if(bn[j].getSalseNumber()>;bn[pick].getSalseNumber())
                pick=j;
        }
        temp=bn;
        bn=bn[pick];
        bn[pick].setbook(temp.getName(),temp.getAuthor(),temp.getSalseNumber());
    }
   
}

论坛徽章:
0
6 [报告]
发表于 2004-10-26 10:57 |只看该作者

新学c,求一个“结构体数组排序的程序”

原帖由 "我不懂C++" 发表:
qsort
std::sort


用qsort最简单了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP