高悬赏!ACM的一道水题,要求使用结构体,通过后必采纳

众所周知,现在各大论坛有很多水王,他们的发贴数是如此之多,以至于必须要用高精度数才能保存。现在ACMForum决定举行一次水王争霸赛,比赛的规则是将这些水王截止到2007年4月28日23时59分59秒这一刻所发的总贴数从大到小进行排序。每个水王当然都想取得尽量靠前的名次,所以他们竭尽全力,不择手段地进行灌水。终于,激动人心的一刻到来了,2007年4月29日0时0分0秒,你作为裁判得到了每个水王的发贴数,现在,你的任务是公正地把这些水王按照发贴数从大到小进行排序。

Input
输入的第一行是一个1到1000的整数N,表示总共有N位水王参加了争霸赛。
以下依次给出每位水王的描述,一位水王的描述占据一行,前面为一个仅由字母和数字组成的长度不超过20的字符串,代表这个水王的ID,后面为一个整数(非负数),代表这个水王的发贴数,注意,这个整数小于2,000,000,000。

Output
依次输出按照发贴数从小到大排好序的各位水王的ID和这个水王的发贴数,ID和发贴数用空格分开。不能有任何多余的字符。若几个ID的发贴数相同,则按照ID输入的先后顺序进行排列。

Sample Input
Raw
6
Lowai 1986
Zhouyuan 2987
Maolaoda 2345
BuTaoCaiGuai 2548
ArthurKing 2003
Hyyylr 3185

Sample Output
Raw
Lowai 1986
ArthurKing 2003
Maolaoda 2345
BuTaoCaiGuai 2548
Zhouyuan 2987
Hyyylr 3185
用c,不要c++

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cctype>
using namespace std;
struct node
{
char name[30];
int num;
int k;//输入的先后顺序
}s[1234];
int cmp(node a,node b)
{
if(a.num==b.num)
return a.k<b.k;
return a.num<b.num;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%s %d",s[i].name,&s[i].num);
s[i].k=i;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++)
printf("%s %d\n",s[i].name,s[i].num);
}
return 0;
}追问

能不能把它改成C语言,之前忘说了,谢谢

追答

#include
#include
#include
struct node
{
char name[30];
int num;
int k;//输入的先后顺序
}s[1234];
int cmp(const void *a,const void *b)
{
if((*(node*)a).num==(*(node*)b).num)
return (*(node*)a).k-(*(node*)b).k;
return (*(node*)a).num-(*(node*)b).num;
}
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s %d",s[i].name,&s[i].num);
s[i].k=i;
}
qsort(s,n,sizeof(node),cmp);
for(i=0;i<n;i++)
printf("%s %d\n",s[i].name,s[i].num);
}
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

两道难题,学霸帮帮我,高悬赏,必采纳!
第一题,18.84÷2×5÷3=15.7立方分米 第二题,12×2÷3×1.7÷3.4=4次

120道五年级数学应用题(高悬赏哦,100积分~呜我的积分没有了!)
16.水结成冰后体积增加 ,那么冰化成水后体积减少 。( )17.商品广告中的“买四送一”指的是比原价优惠 。( )18.4.2比3.6多0.6,也就是说4.2比3.6多60%。( )19.种子的发芽率89%,就是说有89粒种子发芽了。( )20.一瓶饮料300毫升,其中橙汁与水的比是1:4,小红喝去一半后,剩下的饮料中,橙汁的含量是2...

...不急用,明天或后天来采纳 除题目要求外:1.要有一定的事例和议论...
闻过不跳.这对实施舆论监督,关系极大.在我们这个封建意识还比较浓厚的国家,领导也好,群众也好,其民主意识的培养,彼此都需要一个过程.要求每个领导者“闻过则喜”,“闻善言则拜”,标准太高,不现实,不如暂提“闻过不跳”为好.莫 谓标准低,做到也不易.闻过即跳的事,今天并不少见.老虎的屁股,即使...

研发游戏软件,都需要什么?怎么做?
当在摄影机在机位1先拍摄物体2后,下一个镜头应该在机位2的位置拍摄物体1,使物体在屏幕上的方向是相对的,这样即便在镜头剪辑以后再播放,也不会造成方向上的混乱。严禁在机位1先拍摄物体2后,到机位2a拍摄物体1,这样就使人物在屏幕上“一顺儿”了,这是拍摄时的大忌。换句话说,拍摄时严禁跨越轴线。如果要跨越轴...

...本人新玩这个游戏,有很多不懂的地方,在此满分悬赏!
虎牢关之战(吕布传,无双模式限定):首先要在之前的"汜水关之战"中击败曹操、孙坚、刘备。之后进入"虎牢关之战",接触三人中任意一个,就会引发洛阳大火动画,之后消灭曹操、孙坚、刘备,"黄龙钩镰刀"会得。 张辽使用起来很顺手。 C1可以冲的很远,范围很大,按键可以追加一次攻击;C3连击有7HIT;C4是旋转360度的攻击...

家里有必要装一个净水器吗?有没有用?
家里有必要装一个净水器。不过选择一个净水器品牌要多多留意这几点:1、警惕伪国外品牌净水器市场背后,有一些不良商家浑水摸鱼,伪造国外品牌忽悠大众,这种净水器可能是资质不够的厂家生产的三无产品,所以很有可能达不到过滤效果,反而会影响身体健康。2、售后服务是否完善净水器因为产品的特性,售后服务...

相似回答