题目意思大概是输入一堆人的学号,成绩,给出学号,总排名,考场号,考场内排名。

这是我第一次写的:

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 30005; struct Student
{
int registnum[13];
int score;
int rank_in_group;
int group;
}; Student stu[maxn]; //创建数组用于存储 bool cmp(Student a, Student b)
{
if(a.score != b.score) return a.score > b.score;
else return a.registnum < b.registnum;
} int main()
{
//输入
int n, k, num=0;
scanf("%d", &n);
//fflush(stdin);
for (int i = 1; i <= n; i++) //考场号
{
scanf("%d", &k);
///fflush(stdin);
for (int j = 0; j < k; j++)
{
scanf("%d%d", &stu[num].registnum, &stu[num].score);
stu[num].group = i;
num++;
}
//组内排名
sort(stu + num - k, stu + num, cmp);
//组内排号
stu[num - k].rank_in_group = 1;
for (int j = 1; j < k; j++)
{
if (stu[num - k + j].score != stu[num - k + j - 1].score)
{
stu[num - k + j].rank_in_group = stu[num - k + j - 1].rank_in_group + 1;
}
else
{
stu[num - k + j].rank_in_group = stu[num - k + j - 1].rank_in_group;
}
}
}
printf("%d\n", num); //总人数
sort(stu, stu + num, cmp);
int r = 1;
for (int i = 0; i < num; i++)
{
if (i>0 && stu[i].score != stu[i-1].score) //避免出现数组访问问题
{
r = i + 1;
}
printf("%d %d %d %d\n", stu[i].registnum, r, stu[i].group, stu[i].rank_in_group);
} system("pause");
}

但是有问题,那个学号总是输入不对。后来一想是因为13位数字的数组,输入的话得一个一个输入(输入到每个位置)。

但是直接int a[13]然后输入scanf("%d",&a)这样

肯定只能输入到一个里面

比如这段测试代码:



(剩余的奇怪数字是因为没有清内存)

然而13位的学号,对于单个是int型的数组来说,又超内存了

int是一种数据类型,在编程语言C中,是用于定义整数类型变量的标识符。在一般的电脑中,int占用4字节,32比特,数据范围为-21474836482147483647[-2^312^31-1]

然后就把改成了输入字符串数组,因为用scanf("%s",a)的话,他就会自己放进去了

【C/C++】PAT A1025 Ranking/算法笔记的更多相关文章

  1. 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)

    Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...

  2. Bayesian Personalized Ranking 算法解析及Python实现

    1. Learning to Rank 1.1 什么是排序算法 为什么google搜索 ”idiot“ 后,会出现特朗普的照片? “我们已经爬取和存储了数十亿的网页拷贝在我们相应的索引位置.因此,你输 ...

  3. 算法笔记--数位dp

    算法笔记 这个博客写的不错:http://blog.csdn.net/wust_zzwh/article/details/52100392 数位dp的精髓是不同情况下sta变量的设置. 模板: ]; ...

  4. 算法笔记--lca倍增算法

    算法笔记 模板: vector<int>g[N]; vector<int>edge[N]; ][N]; int deep[N]; int h[N]; void dfs(int ...

  5. 算法笔记--STL中的各种遍历及查找(待增)

    算法笔记 map: map<string,int> m; map<string,int>::iterator it;//auto it it = m.begin(); whil ...

  6. 算法笔记--priority_queue

    算法笔记 priority_queue<int>que;//默认大顶堆 或者写作:priority_queue<int,vector<int>,less<int&g ...

  7. 算法笔记--sg函数详解及其模板

    算法笔记 参考资料:https://wenku.baidu.com/view/25540742a8956bec0975e3a8.html sg函数大神详解:http://blog.csdn.net/l ...

  8. 算法笔记——C/C++语言基础篇(已完结)

    开始系统学习算法,希望自己能够坚持下去,期间会把常用到的算法写进此博客,便于以后复习,同时希望能够给初学者提供一定的帮助,手敲难免存在错误,欢迎评论指正,共同学习.博客也可能会引用别人写的代码,如有引 ...

  9. 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是 ...

随机推荐

  1. .net C# 释放内存 例子

    namespace myCommon{    public class SysVar    { [DllImport("kernel32.dll")]        public ...

  2. 【JAVA】笔记(7)--- 数组精讲

    数组的静态初始化: 1.一维数组: int [ ] arr = { 1,2,3,4 } ; Object [ ] arr = {   new Object ( ) , new Object ( ) , ...

  3. 直播预告 | 猪齿鱼V1.1发布,线上新功能详解邀您参加

    2021年11月11日,数智化效能平台猪齿鱼 Choerodon发布 V1.1版本,多项功能新增或优化,多管齐下,全面提升团队工作效能! 通过提供体系化方法论和协作.测试.DevOps及容器工具,猪齿 ...

  4. python实现调用摄像头或打开视频文件

    目录: (一)调用摄像头或打开视频文件代码实现 (二)说明和补充 (一)调用摄像头或打开视频文件代码实现 1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 ...

  5. [bzoj1635]最高的牛

    初始如果没有限制,很显然每一头牛高度都是h当只有一个限制,让h[a]到h[b]的高度都减1即可容易发现两个限制不会相交(否则必然矛盾),只会包含或相离,因此没有影响,直接差分/线段树即可(注意:1.不 ...

  6. 解决Windows7、Windows10 ping不通的问题

    在VLAN交换机网络下面不能访问Windows10或者Windows7共享.ping不通问题,关闭防火墙发现能ping通了共享也正常了. 但是关闭防火墙将给电脑系统留下安全隐患.不怕麻烦的可以继续往下 ...

  7. php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)

    dompdf\lib\fonts\dompdf_font_family_cache.php记住这个文件里面存放的是字体生成的缓存,迁移时如果覆盖了这个文件会导致乱码而且很难找到出错的地方,相信我... ...

  8. MybatisPlus入门程序

    参考资料:MybatisPlus官网 环境搭建 创建数据库 CREATE DATABASE `mybatisplus` ​ USE `mybatisplus` ​ CREATE TABLE `user ...

  9. JavaBean内省与BeanInfo

    Java的BeanInfo在工作中并不怎么用到,我也是在学习spring源码的时候,发现SpringBoot启动时候会设置一个属叫"spring.beaninfo.ignore", ...

  10. 日常Java 2021/11/17

    应用程序转换成Applet 将图形化的Java应用程序(是指,使用AWT的应用程序和使用java程序启动器启动的程序)转换成嵌入在web页面里的applet是很简单的.下面是将应用程序转换成.Appl ...