前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >03:成绩排序 个人博客:doubleq.win

03:成绩排序 个人博客:doubleq.win

作者头像
attack
发布2018-04-12 15:09:39
1.1K0
发布2018-04-12 15:09:39
举报
文章被收录于专栏:数据结构与算法

个人博客:doubleq.win

03:成绩排序

总时间限制: 1000ms 内存限制: 65536kB描述

给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。

输入第一行为n (0 < n < 20),表示班里的学生数目; 接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。输出把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。样例输入

代码语言:javascript
复制
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28

样例输出

代码语言:javascript
复制
Joey 92
Hanmeimei 90 
Kitty 80
Tim 28

来源习题(14-1)

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cstring>
 5 using namespace std;
 6 int n,k;
 7 struct s
 8 {
 9     char xh[1001];
10     int cj;
11 }a[1001];
12 int comp(const s &a,const s &b)
13 {
14     if(a.cj>b.cj)return 1;
15     if(a.cj<b.cj)return 0;
16     if(strcmp(a.xh,b.xh)<0)
17     return 1;
18     //if(a.xh<b.xh)return 0;
19     if(strcmp(a.xh,b.xh)>0)
20     return 0;
21 }
22 int main()
23 {
24     cin>>n;
25     for(int i=1;i<=n;i++)
26     {
27         scanf("%s",&a[i].xh);
28         cin>>a[i].cj;
29     }
30     sort(a+1,a+n+1,comp);
31     /*printf("%s",a[k].xh);
32     printf("%d",a[k].cj);*/
33     for(int i=1;i<=n;i++)
34     {
35         printf("%s ",a[i].xh);
36         cout<<a[i].cj<<endl;
37     }
38     return 0;
39 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 个人博客:doubleq.win
  • 03:成绩排序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档