1025 PAT Ranking

news/2024/7/5 2:08:55

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;
}


http://lihuaxi.xjx100.cn/news/241358.html

相关文章

上行短信/下行短信

这今天接触到短信上行和下行一些名词&#xff0c;很是糊涂啊。网络上相关资料如下。 从手机发起一个的过程叫上行(MO)&#xff0c;到手机结束的过程叫下行(MT)。比如&#xff0c;平时给你的朋友发送一条短信&#xff0c;对你来说就是上行(MO)&#xff0c;而对你的朋友来说&…

RHEL6.3安装vsftpd

1、下载vsftpd&#xff0c;可以从官网&#xff08;http://vsftpd.beasts.org&#xff09;下载&#xff0c;也可以百度搜索[rootlocalhost vsftpd]# wget http://down1.chinaunix.net/distfiles/vsftpd-3.0.2.tar.gz2、解压压缩包并进入解压出来的目录[rootlocalhost vsftpd]# t…

1062 Talent and Virtue

1.在结构体里面设置total_grades属性是明智之举&#xff0c;但是不可以在结构体内得到total_gradesvirtue_gradetalent_grade; 2.弄清题意&#xff0c;对人进行分类&#xff0c;等级越高type值越小&#xff0c;但是注意分的类别也许出现交叉的情况&#xff0c;细的要出现在粗的…

【转】Windows 64bit下Python环境配置与集成IDE PyCharm

本篇博客主要讲述Windows下Python环境的搭建&#xff08;十分感谢原作者&#xff01;&#xff01;&#xff09;1. Python基本环境安装&#xff1a; 在网站Python官网 中下载Windows版本的Python安装包&#xff0c;双击下载下来的安装包&#xff0c;安装过程中要选中pip和Add py…

antd+dva笔记

参考 React中函数式声明组件Dva Ant Design 前后端分离之 React 应用实践ReactDvaJS 之 hook 路由权限控制dva 知识地图react-router Guides and API docs (v2, v3)react-sage redux-saga 是一个用于管理 Redux 应用异步操作,可以用来代替 redux-thunk 中间件。《Redux-saga 中…

java for 两个条件_for循环条件里定义2个变量为什么会报错

public class HelloWorld {//完成 main 方法public static void main(String[] args) {int scores[]{89,-23,64,91,119,52,73};HelloWorld hellonew HelloWorld();hello.sortScore(scores);}//定义方法完成成绩排序并输出前三名的功能public void sortScore(int[] scores){Arra…

1012 The Best Rank

思路&#xff1a;读入全部的数据之后&#xff0c;按照四个cmp函数对数组进行排序&#xff0c;给每生的4个科目的排名赋值&#xff0c;读入要检验的id后使用strcmp对数组中的id进行遍历(幸好这里数组大小和要检验的数目乘积不超过4万)&#xff0c;如果找到了相同id,调用写好的得…

git github 快速入门

本节内容 github介绍安装仓库创建& 提交代码代码回滚工作区和暂存区撤销修改删除操作远程仓库分支管理多人协作github使用忽略特殊文件.gitignore为什么要用版本控制&#xff1f; 假设你在的公司要上线一个新功能&#xff0c;你们开发团队为实现这个新功能&#xff0c;写了…