您的位置:首页 > 其它

HDU 3293 sort

2011-08-04 21:00 211 查看
结构体排序,sort函数的运用!大意是名字不同的情况下,名字先按字典顺序排列,同名者看武器的等级,wonderful的先,good第二,soso最后!

武器等级一样的同样按字典顺序排列!

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
usingnamespace std;
struct node
{
char weapon1[21];
char name[21];
char rank[21];
int level;
};
node nodes[510];
int cmp(node a,node b)
{
if(strcmp(b.name,a.name)==0)
{
if(strcmp(b.rank,a.rank)!=0)
return a.level<b.level;
else
if(strcmp(b.weapon1,a.weapon1)>0)
return1;
else
return0;
}
else
if(strcmp(b.name,a.name)>0)
return1;
else
return0;

}
int main()
{
int t=1;
int n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
cin>>nodes[i].weapon1>>nodes[i].name>>nodes[i].rank;
if(strcmp(nodes[i].rank,"wonderful")==0)
nodes[i].level=1;
else
if(strcmp(nodes[i].rank,"good")==0)
nodes[i].level=2;
else nodes[i].level=3;

}
sort(nodes,nodes+n,cmp);
cout<<"Case "<<t++<<endl;
for(i=0;i<n;i++)
{
if(strcmp(nodes[i-1].name,nodes[i].name)!=0)
cout<<nodes[i].name<<":"<<endl;
cout<<""<<nodes[i].weapon1<<""<<nodes[i].rank<<endl;
}
}
return0;

}


应该不用写注释了吧!我感觉都还好!有不懂得可以留言我会解答的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: