小明的调查统计(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
最近小明他们社团对理工全校每个班级进行了一次社会调查,他们对每同学的数学成绩进行了统计。小明的任务是老师想知道全校成绩排在第n名同学的班级号和班级学号(如果成绩相同就并列排在同一名次),现在你需要编一个程序帮助小明来完成这个任务。

输入
只有一组测试数据
第一行输入正整数T(0<T<=500)和M(0<M<=101),表示学校的班级数和老师需要查询的次数
随后有T行数据,第i行表示班级号为i的班级,每行第一个数N(0<N<=200)表示这个班级有N个同学。接下来输入N个正整数,第j个正整数表示班级学号为j同学的数学成绩(0=<数学成绩<=100,班级号和班级学号都是从1开始)。
随后的M行数据,每行数据有一个正整数Q,表示查询全校数学成绩排名第Q位的所有同学的班级号和班级学号。
输出
每次查询输出占一行,输出成绩排在第Q位同学的班级号和学号(如果有多同学成绩并列排在在第Q名,那么按班级号从小到大输出,如果班级号相同那么按班级学号从小到大输出)
样例输入
3 4
10 23 56 89 41 23 54 65 23 89 68
3 89 78 85
5 56 68 76 56 74
1
2
3
4
样例输出
1 3
1 9
2 1
2 3
2 2
3 3
       今天终于把这个题AC了,以前看了好几次都没想到解决方法。我认为这题其实就是对结构体的运用,一开始我定义了一个一维结构体数组,但后来发现不能完整的储存学生信息(因为我少定义了一个变量),于是我就定义了一个二维的结构体数组,a[i][j]表示第i个班级第j个学生,但是对它操作的时候又遇到了新的问题。后来仔细想一想,一维的可以解决,只不过要开一个很大的数组,但是应该可以解决问题。于是就一边写一边调试,最后,测试样例过了,提交,Accepted!分享一下我的代码:

#include<stdio.h>
#include<algorithm>
using namespace std;
struct stud
{int clanum; /*班级号*/int num; /*学号*/int sco; /*成绩*/int rank; /*排名*/
}a[100002]; /*最多有500个班级*每个班级最多200名学生*/
bool comp(stud a1,stud a2) /*按要求排序*/
{if(a1.sco!=a2.sco) return a1.sco>a2.sco;if(a1.clanum!=a2.clanum)  return a1.clanum<a2.clanum;if(a1.num!=a2.num) return a1.num<a2.num;
}
int main()
{int t,m,n,i,j,temp,w,k=0,e,h,count;scanf("%d%d",&t,&m); /*t个班级,m次询问*/for(i=1;i<=t;i++) {scanf("%d",&n); /*班级学生数*/for(j=1;j<=n;j++){scanf("%d",&w); /*学生成绩*/a[k].sco=w; /*第i个班级第j个学生的成绩*/a[k].clanum=i; /*第i个班级*/a[k].num=j; /*第j个学生*/k++;}}sort(a,a+k,comp); /*排序*/count=1; /*排名开始为1,即第一名*/h=a[0].sco; /*比较时的变量*/for(i=0;i<k;i++) /*把所有学生从头到尾遍历一次*/{if(a[i].sco!=h) /*不并列*/{h=a[i].sco; /*把这个学生的成绩设为比较时的变量*/count++; /*名次加1*/}a[i].rank=count; /*count记录名次*/}for(j=0;j<m;j++) /*m次查询*/{scanf("%d",&temp); /*要查询的排名*/for(i=0;i<k;i++){int flag=0; /*0为还没有输出排名为temp的学生信息*/while(temp==a[i].rank) /*找到了排名为temp的学生,把这些学生信息一次输完*/{printf("%d %d\n",a[i].clanum,a[i].num);i++;flag=1; /*标记已经输出学生信息*/}if(flag) /*已经输出学生信息*/break;}}return 0;
}

NYOJ 240 小明的调查统计(二)相关推荐

  1. 小明的调查统计(二)

    1 /*小明的调查统计(二) 2 时间限制:1000 ms | 内存限制:65535 KB 3 难度:1 4 描述 5 最近小明他们社团对理工全校每个班级进行了一次社会调查,他们对每同学的数学成绩进行 ...

  2. 小明的调查作业java_小明的调查作业

    小明的调查作业 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查, 聪明的小明为了实验的客观性,想利用 ...

  3. C语言 小明的调查作业

    Description 小明的老师布置了一份调查作业,小明想在学校中随机找N个同学一起做一项问卷调查,聪明的小明为了实验的客观性,他先随机写下了N个1到1000之间的整数(0<N≤1000),不 ...

  4. zzuli OJ 1118:小明的调查作业

    小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自己.他先用计算机生成了N个1到1000之间的随机整数(0<N≤1 ...

  5. NYOJ 676 小明的求助

    小明的求助 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 小明对数学很有兴趣,今天老师出了道作业题,让他求整数N的后M位,他瞬间感觉老师在作弄他,因为这是so easy ...

  6. CSP题目:小明种苹果树

    小明种苹果树 CSP题目 题目描述:小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据 ...

  7. csp试题2:小明种苹果(绪)

    csp试题2:小明种苹果(绪) 题目 分析 代码 总结 题目 题目描述       小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地 ...

  8. ZZULIOJ 2348: 小明的第一份实习任务(前缀和)

    题目描述 日志系统是分布式系统的重要组成部分,决定着系统的成败.工业界一种比较常见的的日志处解决方案是通过消息队列将系统产生的日志信息异步的存储起来,再通过日志分析服务进行相应的日志分析,常用的消息队 ...

  9. ccf:201909-2 小明种苹果(续)

    小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作,小明会不时地检查每棵树的状态,根据需要进行疏果.检查时,如果发现可能有 ...

最新文章

  1. 全网最火的Nacos监控中心——Prometheus+Grafana
  2. STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
  3. vmtouch--the Virtual Memory Toucher
  4. 微软成功测试氢燃料电池,为数据中心连续供电 48 小时
  5. Eclipse内存分析工具的用法
  6. html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...
  7. 个人阅读作业 The Last
  8. 设计模式的征途—1.单例(Singleton)模式
  9. 获取运行的class文件,所在的目录
  10. java filter param_Java过滤器Filter使用详解
  11. EMNLP2020 | 模型压缩系列:BERT-of-Theseus(一种基于模块替换的模型压缩方法)
  12. iOS开发 字体适配
  13. 怎么制作U盘启动盘来安装系统
  14. python监控网站更新_Python 通过网站search功能监控网站内容更新
  15. html5做出toast效果,toast提示效果
  16. Linux 系统编程 --文件IO-write()、read()、lseek()函数
  17. InnoDB 数据页结构
  18. 平板电脑支持html吗,HTML5视频无法在平板电脑上播放(HTML5 video not playing on tablets)...
  19. 几款游戏引擎技术对比
  20. python kil 掉子进程

热门文章

  1. virtualbox+vagrant学习-2(command cli)-20-vagrant suspend命令
  2. 如何不编程,采集网站评论信息?(视频教程)
  3. RHEL5中YUM命令解决RPM包依赖性
  4. 如何写出《黄焖鸡米饭是怎么火起来的》这样的文章
  5. struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
  6. hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)
  7. Linux之服务器时间同步
  8. 实例解说Linux命令行uniq (转)
  9. Spark 1.1.1 Programing Guide
  10. 中兴F460破解超管及远程管理