题目链接在此。
有N个考场,每个考场有若干个学生。现给出各个考场中考生的准考证号与分数,要求所有考生按分数从高到低排序,并按顺序输出所有考生的准考证号、最终排名、考场(组)号、考场内排名。
首先说明一下自己的思路:
定义一个结构体数组(二维,第一维表示考场号-1),结构体成员见代码; 读取并保存输入; 对同一个考场内的考生成绩进行排序,将数组中每个成员的考场排名写入自己的结构体成员; 将二维数组转换成一维数组(方便使用sort函数),对所有考生进行排序,并将排名写入自己的结构体成员; 按照题目要求输出信息
注意:当分数相同时,按照准考证号从小到大排序。
《算法笔记》思路:
《算法笔记》的大致思路和以上出不多,由于为了使用sort函数,多了一步数组降维的操作,所以干脆将数组直接定义为一维数组,这时需要在进行组内排序的时候需要注意该组的起始点。
由于在进行全部考生排序之前,所有解题需要的信息已经拿到,为了简化代码,可以直接一遍给所有考生排序,一遍输出相应的信息。
排序题一般解题思路看这里。
新闻热点
疑难解答