考研编程练习----排名

题目描述:

    今天的上机考试虽然有实时的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>

typedef struct student{

    char id[22];

    int m;

    int a[10];

}stu;

int a[10];

stu b[1000];

int main(){

    int n,m,g;

    int i,j,sum[1000],k,ans,max;

    while(scanf("%d",&n)!=EOF&&n!=0){

        scanf("%d%d",&m,&g);

        for(i=0;i<m;i++)

            scanf("%d",&a[i]);

        for(i=0;i<n;i++){

            scanf("%s%d",b[i].id,&b[i].m);

            for(j=0;j<b[i].m;j++)

                scanf("%d",&b[i].a[j]);

        }

        ans=0;

        for(i=0;i<n;i++){

            k=0;

            for(j=0;j<b[i].m;j++)

                k+=a[b[i].a[j]-1];

            sum[i]=k;

            if(k>=g) ans++;

        }

        printf("%d\n",ans);

        for(i=0;i<ans;i++){

            max=0;

            for(j=0;j<n;j++){

                if(sum[j]>sum[max] || (sum[j]==sum[max]&&strcmp(b[j].id,b[max].id)<0)){

                    max=j;

                }

            }

            printf("%s %d\n",b[max].id,sum[max]);

            sum[max]=0;

        }      

    }

    return 0;

}

时间: 2024-07-31 22:09:57

考研编程练习----排名的相关文章

考研编程练习----畅通工程

题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可).问最少还需要建设多少条道路? 输入: 测试输入包含若干测试用例.每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M:随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号.为简单起见,城镇从1到N编号.     注意:两个城

考研编程练习---StringMatching(后缀表达式)

题目描述: Finding all occurrences of a pattern in a text is a problem that arises frequently in text-editing programs.     Typically,the text is a document being edited,and the pattern searched for is a particular word supplied by the user.       We assu

杭电1013-Digitai Root(这是一道考研编程题-天大2015)

Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 53625    Accepted Submission(s): 16747 Problem Description The digital root of a positive integer is found by summing the digits of

考研编程练习----快速排序

void sort(int *a, int left, int right) {     if(left >= right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/     {         return ;     }     int i = left;     int j = right;     int key = a[left];          while(i < j)                               /*控制在当组内寻找一

计算机考研复试真题 简单计算器

题目描述 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入描述:     测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. 输出描述:     对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. 示例1 输入 1 + 2 4 + 2 * 5 - 7 / 11 0 输出 3.00 13.36 /* 天大2018考研编程题 程序设计思想:

软件工程第一次作业-2017282110249

第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 首先读研的目的,坦诚的说为了更好的就业机会,我觉得在本科专业的所学所识不足以让我的将来财政自由.既然是为了就业,有人会觉得选择计算机自然就是一个最好的选择了,当然我有一部分原因也是如此,但是据我本科所了解到的计算机科学来看,除去感兴趣的因素(说实话,目前为止我还并不喜欢写代码,可能是我还不能掌控他),我觉得计算机专业对我来说是可以翘起脚就能够摘得到的那颗苹果,那我就抓住他咯. 我的条件就是两个字,小白

dfs2

搜索练习4 FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就是说,奶牛们的编程能力有明确的排名. 整个比赛被分成了若干轮,每一轮是两头指定编号的奶牛的对决.如果编号为A的奶牛的编程能力强于编号为B的奶牛(1 <= A <= N; 1 <= B <= N; A != B) ,那么她们的对决中,编号为A的奶牛总是能胜出. FJ想知道奶牛们编程能力

Java程序员应该掌握哪些东西?

Java是热门的语言之一,2014年7月份TIOBE编程语排名Java排名第二,仅在C语言之后.Java可以用来开发web应用和桌面应用,更重要的是Java具有跨平台性:write once, run everywhere. Java相对其他语言来说,更容易学习.如果你想成为一名Java程序员,根据个人经验,认为你至少应该对下面的这些内容非常熟练,才能在Java开发上游刃有余. Java基础部分: OOP概念 抽象类与接口 构造函数与initialization order(初始化顺序) Jav

牛大赛Cow Contest

题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competito