上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名。给定录取分线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打印。
输入格式
测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N
< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一
名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号
(题目号由1到M)。
当读入的考生人数为0时,输入结束,该场考试不予处理。

输出格式
对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高
到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考
号的升序输出。
输入样例:
4 5 25
10 10 12 13 15
CS004 3 5 1 3
CS003 5 2 4 1 3 5
CS002 2 1 2
CS001 3 2 3 5
1 2 40
10 30
CS001 1 2
2 3 20
10 10 10
CS000000000000000001 0
CS000000000000000002 2 1 2
0

输出样例:
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20

注意输入时读取问题,不涉及算法

#include<stdio.h>
#include<string.h>
int main()
{int num_s,num_t,sum_score,i,j;int list[11];//题目分数struct student{char id[21];//学生证int num;//做题数量int No[11];//题号int score;//成绩}stu[1001],cha;while(scanf("%d",&num_s)!=EOF){if(num_s==0)break;scanf("%d%d",&num_t,&sum_score);for(i=0;i<num_s;i++){stu[i].score=0;}for(i=0;i<num_t;i++){scanf("%d",&list[i]);}for(i=0;i<num_s;i++){scanf("%s%d",stu[i].id,&stu[i].num);for(j=0;j<stu[i].num;j++){scanf("%d",&stu[i].No[j]);}for(j=0;j<stu[i].num;j++)stu[i].score+=list[stu[i].No[j]-1];}int n=0;//达线人数for(i=0;i<num_s;i++){if(stu[i].score>=sum_score)n++;}printf("%d\n",n);for(i=0;i<num_s;i++){for(j=i;j<num_s;j++){if(stu[j].score>stu[i].score){cha=stu[i];stu[i]=stu[j];stu[j]=cha;}else if(stu[j].score==stu[i].score){if(strcmp(stu[j].id,stu[i].id)<0){cha=stu[i];stu[i]=stu[j];stu[j]=cha;}}}}for(i=0;i<n;i++){printf("%s %d\n",stu[i].id,stu[i].score);}}return 0;
}

算法学习之路|打印排名相关推荐

  1. 算法学习之路和程序员(技术)学习必读书籍

    原文链接:http://lucida.me/blog/on-learning-algorithms/ 转 算法学习之路和程序员(技术)学习必读书籍 2015年05月26日 09:46:56 阅读数:1 ...

  2. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  3. 完全背包问题贪心算法c语言,数据结构与算法学习之路:背包问题的贪心算法和动态规划算法...

    一.背包问题描述: 有N种物品和一个重量为M的背包,第i种物品的重量是w[i],价值是p[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包重量,且价值总和最大. 二.解决方法: 1.贪心算 ...

  4. 巩朋:我的算法学习之路

    转自:http://blog.jobbole.com/67348/ 巩朋:我的算法学习之路 分享到: 232 MVC架构模式分析与设计 Linux Guide for Developers 网页广告特 ...

  5. 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》

    文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...

  6. 算法学习之路|最小生成树——prime算法

    摘要: 算法概述:对于一个带权的连通图,其顶点的集合 为V,边的集合为E.定义一个新的集合Vnew={空},第一步在图中任选一个顶点v加入Vnew,第二步寻找最短的边(u,v),其中u∈Vnew,v∈ ...

  7. 算法学习之路|最小生成树—kruskal

    算法概述:一个带权的连通图, 有V个点,E个边,去掉所有的边,得到一个新图,将E个边按权值从小到大排列,然后从权值最小的边<u,v>开始加入,重复下去,但每次加入之前要判断u,v是否连通, ...

  8. 算法学习之路|牢房问题

    在监狱里有n间牢房,一开始每个牢房门都是关着的,每间房里有一个囚犯.监狱长每次先喝一杯威士忌,然后下去打开或关闭一部分牢房的门.第一次把每扇门都打开,第二次改变第2,4,6-扇门的状态,第三次改变第3 ...

  9. 算法学习之路2 质数问题

    前言 质数问题也算是入门的问题了,在CSDN竞赛第五期中,前2题也跟质数问题存在关系,看了大佬们的解答,我的解题方式算是暴力的了.只能达到启蒙的作用,要做好还是要多刷题. 概念法 质数又称素数.一个大 ...

最新文章

  1. valgrind——Cachegrind分析CPU的cache命中率、丢失率,用于进行代码优化。
  2. 网络推广外包——网络推广外包专员浅析网站流量应该如何提升?
  3. SpringBoot WebSocket Stomp
  4. socket编程方法,概念
  5. 企业建设什么样的网站才能符合用户?
  6. 安装gazebo_手把手教你用Gazebo仿真UUV水下机器人
  7. html使用js的变量_JS变异小技巧:使用JavaScript全局变量绕过XSS过滤器
  8. ICS SIP Call移植
  9. server数据库与oracle,浅析Oracle和SQL Server-数据库专栏,ORACLE
  10. C++ string::size_type
  11. 运行tuxedo自带例子simpapp,测试tuxedo安装
  12. rpm安装mysql指定数据仓库_linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境-Go语言中文社区...
  13. mysql中DateTime、Date、Time、TimeStamp区别
  14. 太阳光轨迹软件_全球各地太阳全年日行路线图:呈8字曲线轨迹
  15. Ubuntu 下查看图片
  16. 上传vip专享资源,瓜分奖金池
  17. 张量(Tensor)的降维与升维
  18. Unity制作格斗游戏核心思路总结
  19. 秋招手撕代码:4bit转换为1bit,且是慢时钟域到快时钟域
  20. JavaScript检测原始值、引用值、属性

热门文章

  1. boost::contract模块实现简单queue的测试程序
  2. Boost:原子API的用法测试程序
  3. Boost:基于boost::asio单元测试的测试程序
  4. ITK:将图像从一种类型投射到另一种类型,但限制在输出值范围内
  5. VTK:PolyData之MeshQuality
  6. OpenCV PCA与指定的保留差异量的实例(附完整代码)
  7. OpenCV定制和调试检测系统
  8. OpenGL 三角形的渲染
  9. QT实现太阳系系统八大行星
  10. QT的QHoverEvent类的使用