1025 PAT Ranking
1. 考生的编号是数字字符串,但是没必要转化成整数再比较,可以直接用strcmp()
2. 对整体的排名进行编号时所有信息都已经齐备,可以边编号边输出
3. 需要有些思量的地方是部分编号,当当前学生的分数不等于他上一个该怎么办
4. 真的需要int final_rank这个属性吗?可以不用的,因为它的输出是紧接着得到
5. 在用scanf读入的时候千万注意除了字符数组都要加&,否则容易出现少读或者段错误
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;const int maxn = 100*300;struct stud{char reg_no[15] = "";int score = 0;int location = 0;int local_rank = 0;
}studs[maxn];//分数高的上去,然后是注册号小的上去
bool cmp(stud a,stud b){if(a.score!=b.score) return a.score>b.score;else return strcmp(a.reg_no,b.reg_no)<0;
}int main(){int n;scanf("%d",&n);int idx = 0;//整张列表for(int i=1;i<=n;i++){int k;scanf("%d",&k);for(int j=0;j<k;j++){int temp =idx++;scanf("%s %d",studs[temp].reg_no,&studs[temp].score);studs[temp].location = i;}//本地排序 sort(studs+idx-k,studs+idx,cmp);//本地编号 studs[idx-k].local_rank = 1;for(int j=idx-k+1;j<idx;j++){if(studs[j].score!=studs[j-1].score)studs[j].local_rank = j-idx+k+1;else studs[j].local_rank = studs[j-1].local_rank;}}//整体排序 sort(studs,studs+idx,cmp);//输出总人数 printf("%d\n",idx); //整体编号+输出int r = 1;//总排名,当当前学生分数不等于上一个,则更新rfor(int i=0;i<idx;i++){if(i>0&&studs[i].score!=studs[i-1].score)r = i+1;printf("%s %d %d %d\n",studs[i].reg_no,r,studs[i].location,studs[i].local_rank); } return 0;
}
1025 PAT Ranking相关推荐
- PAT甲级1025 PAT Ranking:[C++题解]排序、结构体、排名
文章目录 题目分析 题目链接 题目分析 一个区域排名和一个总排名.启发我们每个同学的数据存两份,一个存在区域数组中,另一个存在整体数组中. 有序列表中排名怎么求呢? 比如序列 得分:99 98 98 ...
- PAT A 1025. PAT Ranking (25)
题目 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of ...
- PAT Advanced 1025. PAT Ranking (25) (C语言实现)
我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容(本篇文章链接).此处文章目前已更新至与Github Pages同步.欢迎star我的r ...
- (C++)1025 PAT Ranking
#include<cstdio> #include<algorithm> #include<cstring>using namespace std;const in ...
- 【PAT甲级 补全前导0 vector作为函数参数】1025 PAT Ranking (25 分) Java、C++
如何补全前导0 Java String idStr = String.format("%013d", out.id); //用0补全13位 System.out.println(i ...
- PAT:1025. PAT Ranking (25) AC
#include<stdio.h>#include<string.h> //[warning]刚开始少了这个头文件,但是VS2010中被系统自动优化没有察觉 #include& ...
- PAT 1025 PAT Ranking题解
大致题意: 输入所有考生的考号以及所有考生的成绩,以及考生所在的考场号. 输出格式: 考生的考场号 考生的总名次 考生所在的考场号 考生所在考场的名次 首先解决考生的排名问题,应当先对考生在本考场所取 ...
- [PAT A1025]PAT Ranking
[PAT A1025]PAT Ranking 题目描述 1025 PAT Ranking (25 分)Programming Ability Test (PAT) is organized by th ...
- PAT 1025 PAT Rankings 思路与题解
1025 PAT Ranking 原题 思路 定义结构体,将分考场排名也纳入结构体内 id以字符数组的形式存储,输入输出均用格式控制符%s即可 化繁为简,通过下标灵活控制多个一维数组的组合.不要轻易考 ...
最新文章
- 格灵深瞳开盘破发,市值73亿,创始人曾是谷歌眼镜创始成员
- BOOL,int,float,指针变量 与“零值”比较
- 你是什么类型的程序员?
- java 通过cookie判断是否登陆
- Mapgis6.7 林相图自动注记 .
- 关闭线程 C语言,如何用C语言实现多线程
- WPF中的附加行为简介
- 图解WebGLThree.js工作原理
- Vue角色的权限管理
- 如何更改springboot的tomcat版本
- 如何在Mac上轻松使用SVN
- RADIUS服务器不是消息,RADIUS通过如下哪些手段来确保RADIUS服务器与RADIUS客户端之间交互消息正确性()。...
- C语言程序设计之猜数字游戏(随机数的讲解)
- 永不消逝的电波(二)HackRF入门:家用无线门铃信号重放
- 小米扫地机器人原地不动_扫地机器人在原地打转是什么原因?小编来告诉你!...
- java、.net、IOS、Android自学编程学习视频与资料
- Android应用网络限制功能实现
- Java从服务端下载Excel模板文件
- termux python3-dev_termux进阶
- 如何使用Selenium自动化测试工具获取动态图片验证码?