PAT 甲级1025 PAT Ranking的c++实现
时间:2020-05-19
本文章向大家介绍PAT 甲级1025 PAT Ranking的c++实现,主要包括PAT 甲级1025 PAT Ranking的c++实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm>//这是sort函数所在的库 4 using namespace std; 5 struct Student{ 6 char id[15]; //id 7 int score; //分数 8 int location_number;//考场号 9 int location_rank; //考场排名 10 }stu[30010]; 11 12 bool cmp(Student student1,Student student2){ 13 if(student1.score!=student2.score){ 14 return student1.score>student2.score; 15 }else{ 16 return strcmp(student1.id,student2.id)<0; 17 } 18 } 19 20 int main(){ 21 int n; //考场的数量 22 int num; //某个考场考生的人数 23 int k=0; //考生总人数 24 scanf("%d",&n); //输入考场数量 25 for(int i=0;i<n;i++){ 26 scanf("%d",&num); //输入该考场的人数 27 for(int j=0;j<num;j++){ 28 scanf("%s %d",stu[k].id,&stu[k].score); //输入考生的ID和分数 29 stu[k].location_number = i+1; //获取考生的考场 30 k++; 31 } 32 sort(stu+k-num,stu+k,cmp); //sort函数排序 33 stu[k-num].location_rank = 1; 34 for(int j=1;j<num;j++){ 35 if(stu[k+j-num].score==stu[k+j-num-1].score){ 36 stu[k+j-num].location_rank = stu[k+j-num-1].location_rank;//同分和上一个同学同排名 37 }else{ 38 stu[k+j-num].location_rank = j+1; //不同分就是当前循环的单位加1 39 } 40 } 41 } 42 sort(stu,stu+k,cmp); 43 printf("%d",k);//输出考生总人数 44 int rank=1; //当前排名 45 printf("%s %d %d %d\n",stu[0].id,rank,stu[0].location_number,stu[0].location_rank);//只有一条数据时候输出一条 46 for(int i=1;i<k;i++){ 47 printf("%s ",stu[i].id); 48 if(stu[i].score==stu[i-1].score){ 49 printf("%d %d %d\n",rank,stu[i].location_number,stu[i].location_rank); 50 }else{ 51 printf("%d %d %d\n",i+1,stu[i].location_number,stu[i].location_rank); 52 rank=i+1; 53 } 54 } 55 }
原文地址:https://www.cnblogs.com/Jason-LinkStart/p/12919368.html
- 使用shell脚本检测数据库连接访问情况(r10笔记第98天)
- 贝叶斯分类器及Python实现
- Docker 简介与安装
- 三种决策树算法(ID3, CART, C4.5)及Python实现
- Logistic 回归算法及Python实现
- MySQL主从不一致的修复过程(r10笔记第96天)
- ML中相似性度量和距离的计算&Python实现
- Oracle中的ROWID实现(r10笔记第95天)
- 100个Numpy练习【3】
- 100个Numpy练习【4】
- Golang语言中Path包用法
- 100个Numpy练习【5】
- Golang中container/list包中的坑
- 关于Golang语言数组索引的有趣现象
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vim学习高级技巧之序列的生成方法详解
- 【LoRa社区网关点亮活动】基于腾讯云IoT Explorer搭建开放的LoRaWAN网络
- 面试官:说一下List排序方法
- GWAS全基因组关联分析流程(BWA+samtools+gatk+Plink+Admixture+Tassel)
- linux中ipset命令的使用方法详解
- VirtualBox 未指定要bridged的网络界面的解决办法
- Vim中宏命令的使用实例详解
- 在CentOS搭建Git服务器的详细步骤
- CentOS使用EPEL源的方法步骤
- VirtualBox 错误:This kernel requires the following features not present on the CPU
- keepalived实现nginx高可用
- LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS
- Centos7安装配置NFS服务和挂载教程(推荐)
- 轻松搞定VIM高亮NGINX配置文件的方法
- CentOS7 下安装telnet服务的实现方法