标题:按百家姓将姓名排序 怎么用c++编程呀
只看楼主
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:4 
这个不是偶写地,在网上看到,给楼主参考:
#include <string>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

string first_name[]={"赵","钱","孙","李"};

struct node
{
    int id;
    string name;
    void operator = (const node &a);
    node():id(0),name(""){};
};

void node::operator =(const node &a)
{
    this->id = a.id;
    this->name = a.name;
}



bool cmp(const node &a, const node &b)
{
    if (a.name.substr(0, 2) == b.name.substr(0, 2))
        return a.name < b.name;
    else
        return a.id < b.id;
}

int main()
{
    //freopen("d:\\1.txt", "r",stdin);
    size_t n, i;
    int id;
    string str;
    node names[30];
   
    cout<<"输入多少个姓名?"<<endl;
    cin>>n;
    cout<<"请输入"<<n<<"个姓名"<<endl;

    for (i = 0; i < n; ++i) {
        cin>>str;
        names[i].name = str;
        for (id = 0; id < 4; ++id) {
            if (first_name[id] == str.substr(0, 2)) {
                names[i].id = id;
            }
        }
    }

    /*for (i = 0; i < n; ++i)
        cout<<names[i].name<<" "<<names[i].id<<endl;*/

    sort(names, names + n, cmp);

    for (i = 0; i < n; ++i)
        cout<<names[i].name<<endl;
               
    return 0;
}
2011-06-23 18:38
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
我看11楼的就行。
2011-06-23 22:02
新气象
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2011-6-22
得分:0 
回复 12楼 pangding
可行吗?
2011-06-23 22:45
新气象
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2011-6-22
得分:0 
回复 11楼 Toomj
哇塞,可以。不错。感谢啊。
2011-06-24 08:52
回忆q
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-26
得分:0 
我的好像有点问题,求解......
2012-06-26 08:56
guzenghui
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2012-6-26
得分:0 
强大 河工大飘过
2012-06-26 09:02
guzenghui
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2012-6-26
得分:0 
程序可以运行 看不懂呀  真心求解释
2012-06-26 09:10
PRI
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-26
得分:0 
有我能懂的程序吗  我是大一的 都不会啊
2012-06-26 09:43
wangfengwu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-26
得分:0 
其实我就是来找答案的。。
2012-06-26 13:40
wangfengwu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-26
得分:0 
回复 17楼 guzenghui
我也不懂啊
2012-06-26 14:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343356-1-1.html




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

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