进步排行榜

news/2025/2/4 4:18:55/

假设每个学生信息包括“用户名”、“进步总数”和“解题总数”。解题进步排行榜中,按“进步总数”及“解题总数”生成排行榜。要求先输入n个学生的信息;然后按“进步总数”降序排列;若“进步总数”相同,则按“解题总数”降序排列;若“进步总数”和“解题总数”都相同,则排名相同,但输出信息时按“用户名”升序排列。

输入格式:

首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据先输入一个正整数n(1 < n < 50),表示学生总数。然后输入n行,每行包括一个不含空格的字符串s(不超过8位)和2个正整数d和t,分别表示用户名、进步总数和解题总数。

输出格式:

对于每组测试,输出最终排名。每行一个学生的信息,分别是排名、用户名、进步总数和解题总数。每行的各个数据之间留一个空格。注意,进步总数和解题总数都相同的学生其排名也相同。

输入样例:

2
6
usx15131 21 124
usx15101 27 191
usx15113 31 124
usx15136 18 199
usx15117 27 251
usx15118 21 124
10
usx15131 21 124
usx15101 27 191
usx15107 24 154
usx15113 31 124
usx15117 25 251
usx15118 21 124
usx15119 22 117
usx15121 43 214
usx15128 21 124
usx15136 28 199

输出样例:

1 usx15113 31 124
2 usx15117 27 251
3 usx15101 27 191
4 usx15118 21 124
4 usx15131 21 124
6 usx15136 18 199
1 usx15121 43 214
2 usx15113 31 124
3 usx15136 28 199
4 usx15101 27 191
5 usx15117 25 251
6 usx15107 24 154
7 usx15119 22 117
8 usx15118 21 124
8 usx15128 21 124
8 usx15131 21 124

来源:

[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <stdio.h>
#include <string.h>
struct student
{char name[10];int d;//进步总数int t;//解题总数
};
int main()
{int T,q;scanf("%d",&T);for(q=0; q<T; q++){int n;int i,j,l;scanf("%d",&n);struct student s[n];for(i=0; i<n; i++)scanf("%s%d%d",s[i].name,&s[i].d,&s[i].t);for(i=0; i<n; i++)for(j=0; j<n-1; j++)if(s[j].d<s[j+1].d || (s[j].d==s[j+1].d && s[j].t<s[j+1].t) || (s[j].d==s[j+1].d && s[j].t==s[j+1].t && strcmp(s[j].name,s[j+1].name)>0)){//此处判断条件非常关键!分为三层,即三种需要排序的情况,注意不要使用<=来判断,虽然测试用例可以通过,但提交还是会出问题!struct student tp;tp=s[j];s[j]=s[j+1];s[j+1]=tp;}/*printf("\n");//排名检测for(i=0;i<n;i++)printf("%s %d %d\n",s[i].name,s[i].d,s[i].t);*/for(i=0; i<n; i++){j=0;int tp=i;while(s[tp].d==s[tp+1].d && s[tp].t==s[tp+1].t){j++;tp++;}if(j==0)printf("%d %s %d %d\n",i+1,s[i].name,s[i].d,s[i].t);else{for(l=i; l<=i+j; l++)printf("%d %s %d %d\n",tp-j+1,s[l].name,s[l].d,s[l].t);i+=j;}}}return 0;
}


http://www.ppmy.cn/news/283924.html

相关文章

如何做一个排行榜功能

如果每次查询TOP 10都去流水表聚拢数据的话&#xff0c;必须是非常耗时的。所以排行榜功能实时查表&#xff0c;显然不可能。所以就需要用到常见的缓存redis了。 redis有序集合 redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#…

大学排行榜 : qs全球中国区仅大陆大学排行榜

全球qs排名查询 中国qs排名查询 百度百科&#xff1a; qs排名 中国排名世界排名大学地区117清华大学中国218北京大学中国331复旦大学中国445浙江大学中国550上海交通大学中国698中国科学技术大学中国7131南京大学中国8211同济大学中国9225武汉大学中国10236哈尔滨工业大学中…

html动态生成榜单信息,排行榜.html

&#xfeff;排行榜 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.html; }…

2022国内大学排行榜

2022年05月18日&#xff0c;2022年ABC中国大学排行榜&#xff08;原CNUR年度主榜单&#xff09;&#xff0c;由ABC咨询机构编制发布。该排名自发布以来&#xff0c;深受社会各界一致好评&#xff0c;并由国内外数十家权威媒体、高校广泛引用报道。 排名指标&方法 2022年ABC…

Interbrand《2022中国最佳品牌排行榜》:腾讯、阿里巴巴和建行蝉联前三名 | 美通社头条...

美通社消息&#xff1a;品牌战略管理咨询公司Interbrand英图博略正式发布《2022中国最佳品牌排行榜》。2022年整体榜单上榜品牌总价值达到32950.2亿元&#xff0c;较去年的总价值上升了9.8%。千亿级品牌6个&#xff0c;其中腾讯、阿里巴巴和中国建设银行分别以8610.84亿元、682…

redis日排行榜,周排行榜

排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。 一般排行榜都是有实效性的&#xff0c;比如“用户积分榜”。如果没有实效性一直按照总榜来排&#xff0c;可能榜首总是几个老用户&#xff0c;对于新用户来说&#xff0c;那真是太令…

GitHub中文排行榜

https://github.com/kon9chunkit/GitHub-Chinese-Top-Charts &#x1f1e8;&#x1f1f3; GitHub中文排行榜&#xff0c;帮助你发现高分优秀中文项目、更高效地吸收国人的优秀经验成果&#xff1b;榜单每周更新一次&#xff0c;敬请关注&#xff01; 榜单设立目的 &#x1f1e…

csdn 博主排行榜

没有入口&#xff0c;只能自己找入口 csdn 博主排行榜 https://blog.csdn.net/rank/list/total