这道题是照着晴神的来敲,但是自己技术太渣,中间还是出现了不少问题。

1.学习到排序的做法,利用algorithm库的sort(begin,end,cmp),自己按照题目要求来完成cmp的编写

可能经常会用到cstring库的strcmp(a,b),是个好东西,a>b返回正数,==返回0,小于返回负数

2.如果排序题中的个体是有很多用于排序的私人信息的话,可以使用struct来囊括

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
struct student{
char rn[]; //准考号
int score; //分数
int ln; //场次号
int lr; //本场排名
}; student stu[]; bool cmp(const student &a,const student &b){
if(a.score!=b.score) return a.score>b.score;
else return strcmp(a.rn,b.rn)<; //准考号小的排在前面
} int main(){
freopen("in.txt","r",stdin); int n,num=; //n为考场的数量,num为总人数
scanf("%d",&n); for(int i=;i!=n+;++i){
int k; //本场人数
scanf("%d",&k);
for(int j=;j!=k;++j){
scanf("%s %d",stu[num].rn,&stu[num].score);
stu[num].ln=i;
num++;
} sort(stu+num-k,stu+num,cmp); //当前场次排序
stu[num-k].lr= ;
for(int j=;j!=k;j++){
if(stu[num-k+j].score==stu[num-k+j-].score)
stu[num-k+j].lr=stu[num-k+j-].lr;
else stu[num-k+j].lr=j+;
}
}
printf("%d",num);
sort(stu,stu+num,cmp);
int r=;
for(int i=;i!=num;i++){
printf("\n");
if(i!= && stu[i].score!=stu[i-].score)
r=i+;
printf("%s %d %d %d",stu[i].rn,r,stu[i].ln,stu[i].lr);
} return ;
}

PAT1025的更多相关文章

  1. 课堂作业二 PAT1025 反转链表

    MyGitHub 终于~奔溃了无数次后,看到这个结果 ,感动得不要不要的::>_<:: 题目在这里 题目简述:该题可大致分为 输入链表 -> 链表节点反转 -> 两个步骤 输入 ...

  2. PAT1025. PAT Ranking

    /因为这道题之前做过一次,看了别人的算法思想用local跟galobal排序并插入,所以一写就是照着这个思想来的,记得第一次做的时候用sort分段排序,麻烦要记录起始位置,好像最后还没A,这次用别人的 ...

  3. pat1025. PAT Ranking (25)

    1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...

  4. PAT 1025 反转链表

    PAT (Basic Level) Practise 1025 Github链接:https://github.com/H-BING/object-oriented/tree/master/PAT10 ...

  5. [Assignment] C++2

    作业要求:PAT1025 翻转链表 代码在这里

随机推荐

  1. Js获取file上传控件的文件路径总结

    总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...

  2. sonar:查询全部项目的bug和漏洞总数(只查询阻断/严重/主要级别)

    1.统计所有项目主要以上的漏洞和bug -- 统计所有项目主要以上的漏洞和bug ,) AND severity IN('BLOCKER','CRITICAL','MAJOR') 2.统计所有某个项目 ...

  3. ecshop中常用的sql语句

    1.获取单条记录 $row = $GLOBALS['db']->getRow($sql); 2.获取单一字段 $row = $GLOBALS['db']->getOne($sql); 查询 ...

  4. Nginx虚拟目录(alias)和根目录(root)

    功能要求: 假设nginx配置的域名是www.kazihuo.com,现有静态资源/home/www/oye目录需要通过nginx访问. 功能实现: 前提要求: 1.在nginx.conf中到处第二行 ...

  5. keepalived+lvs tcp check 引起的后端服务报Connection reset by peer

    方法一: 取消LVS方式进行tcp转发,进而改为http方式反向代理,问题即可解决. 当然,这是在业务允许使用http的情况下,如果必须使用tcp协议,那就得使用下面的方法了. 方法二: 修改keep ...

  6. kafka原理分析

    #kafka为什么有高吞吐量 1 由于接收数据时可以设置request.required.acks参数,一般设定为1或者0,即生产者发送消息0代表不关心kafka是否接收成功,也就是关闭ack:1代表 ...

  7. pytorch1.0进行Optimizer 优化器对比

    pytorch1.0进行Optimizer 优化器对比 import torch import torch.utils.data as Data # Torch 中提供了一种帮助整理数据结构的工具, ...

  8. 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)

    目录 00. 目录 01. 安装Qt5.12 02. 打开MySQL源码项目 03. 编译MySQL驱动代码 04. 修改mysql.pro文件 05. 编译之后得到对应的库 06. 拷贝动态库到指定 ...

  9. JSON & 虚拟列

    什么是虚拟列? 在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Gener ...

  10. beego 框架基本使用 && 知识点整理

    beego 官网的教程已经整理的非常详细了,但作为一个刚接触的学习者,还是有必要做一下整理,这样在后面使用的时候遇到了不太熟悉的地方,还能反过头来看下自己整理的内容,快速的把知识再捞回来,下面是对官网 ...