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

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. 【Leetcode_easy】844. Backspace String Compare

    problem 844. Backspace String Compare solution1: class Solution { public: bool backspaceCompare(stri ...

  2. jmeter的安装教程

    JMETER安装教程 jmeter的安装教程 1:安装jdk并且配置好环境变量,此处就不做赘述(前面的文档中有) 2:下载jmeter文件和jmeter的插件文件 JMeter:http://jmet ...

  3. Eclipse导war包忽略node_modules等文件

    window7环境下,选择project->Properties->如下图

  4. Eclipse+TestNG搭建接口自动化测试框架

    一.环境安装 1.前提 安装好jdk 配置好Java环境变量 安装Eclips 这些网上都有,就不再详细介绍. 资源分享链接:http://pan.baidu.com/s/1v9Fw6 2.安装Tes ...

  5. 基因id转换

    DAVID网站提供了id转换的功能 1 选择上传gene list文件 2 选择上传ID的类型,我们ID-list.txt中的是Ensembl Gene ID,所以这里选ENSEMBL_GENE_ID ...

  6. myeclipse 相关问题

    [如何设置 Tab 键为四个空格] https://blog.csdn.net/QQ826688096/article/details/90543252

  7. netty 实现心跳检查--断开重连--通俗易懂

    一.心跳介绍 网络中的接收和发送数据都是使用操作系统中的SOCKET进行实现.但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题. 1.心跳机制: 是服务端和客户端定时的发送一个心跳包 ...

  8. 过滤器( filter )的使用

    转自:https://www.jianshu.com/p/2ea2b0e4d1f2 过滤器通常 在 web 服务端用的比较多,有要功能 在客户端的请求访问后端资源之前,拦截这些请求. 在服务器的响应发 ...

  9. C++语法笔记(上)

    客观事物中任何一个事物都可以看成一个对象,对象是由一组属性和一组行为构成的. c++中,每个对象都是由数据与函数这两部分构成,数据就是对象的属性,函数就是对象的行为. c++中对象的类型称为类,类是一 ...

  10. Python——成员变量

    一.类变量 在类命名空间内定义的变量就属于类变量,python允许使用类来修改.读取类变量. 例: class a: b = '我是类变量' def c(self): print (a.b) # 通过 ...