Tips:此题比较简单,最好将每一个学生的信息构建一个结构体,另外需要注意的是,若分数相同,排序按姓名排序,我看网上很多都是使用<algorithm>中的sort算法,只需重写cmp函数即可。

该方法如下所示:

 #include<aigorithm>
bool cmp(const node &a,const node &b)
{
if(a.sum == b.sum)
return strcmp(a.name,b.name) < ? : ;
else
return a.sum > b.sum;
}

但由于我自己是采用纯C语言代码提交的,所以排序时时是自己写的sort函数,采用冒泡排序,虽然较慢,不过也可以AC

 void sort(struct node stu[],int n)
{
int i = ;
int j = ;
for(i = ;i < n;i++)
{
for(j = i ; j < n ; j++)
{
if(stu[i].sum<stu[j].sum) //按分值由大到小排序
{
struct node temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}else if(stu[i].sum == stu[j].sum)
{
if(strcmp(stu[i].name,stu[j].name) > )
{
struct node temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
}
}

最后附上完整源程序:

 #include <stdio.h>
#include <stdlib.h>
#define MAXSTU 1005
struct node
{
char name[]; //姓名
int num; //完成题目数量
int sum; //得分
}stu[MAXSTU]; void sort(struct node stu[],int n)
{
int i = ;
int j = ;
for(i = ;i < n;i++)
{
for(j = i ; j < n ; j++)
{
if(stu[i].sum<stu[j].sum) //按分值由大到小排序
{
struct node temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}else if(stu[i].sum == stu[j].sum)
{
if(strcmp(stu[i].name,stu[j].name) > )
{
struct node temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
}
} int main()
{
int N = ; //考生人数
int M = ; //考题数量
int G = ; //分数线
int score[] = {};//每道题的分值
int i=,j=;
int cnt = ;
while(scanf("%d",&N) && N != )
{
scanf("%d %d",&M,&G);
for(i=;i<M;i++)//读入第二行分值数据
{
scanf("%d",&score[i]);
}
cnt = ;
for(i=;i<N;i++)//循环读入每隔学生的信息数据
{
scanf("%s%d",stu[i].name,&stu[i].num);
stu[i].sum = ;
while(stu[i].num--)
{
scanf("%d",&j);
stu[i].sum += score[j-];
}
if(stu[i].sum >= G)
cnt++;
} sort(stu,N);
printf("%d\n",cnt);
for(i=;i<N;i++)
{
if(stu[i].sum >= G)
{
printf("%s %d\n",stu[i].name,stu[i].sum);
}
} }
return ;
}

杭电oj1236 排名的更多相关文章

  1. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  2. 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”

    按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...

  3. 2017杭电ACM集训队单人排位赛 - 6

    2017杭电ACM集训队单人排位赛 - 6 排名 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 59 1 X X 1 1 X X 0 1 ...

  4. acm入门 杭电1001题 有关溢出的考虑

    最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...

  5. 杭电acm 1002 大数模板(一)

    从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...

  6. 杭电OJ——1198 Farm Irrigation (并查集)

    畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...

  7. C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~

    暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...

  8. 杭电ACM2076--夹角有多大(题目已修改,注意读题)

    杭电ACM2076--夹角有多大(题目已修改,注意读题) http://acm.hdu.edu.cn/showproblem.php?pid=2076 思路很简单.直接贴代码.过程分析有点耗时间. / ...

  9. 杭电ACM2092--整数解

    杭电ACM2092--整数解    分析 http://acm.hdu.edu.cn/showproblem.php?pid=2092 一个YES,一个Yes.试了10几次..我也是无语了..哪里都不 ...

随机推荐

  1. 在wpf中如何让MediaElement的视频循环播放

    原文:在wpf中如何让MediaElement的视频循环播放 MediaElement原始的播放是只播放一遍:如何设置让MediaElement播放 的视频或者音频循环播放,解决如下: 修改Media ...

  2. 35+雪花Logos设计灵感

    快中秋节放假了,给大家分享一些雪花Logos设计灵感,陶冶下心情吧! 原文地址:http://www.goodfav.com/35-snowflake-logos-ideas-17134.html V ...

  3. C#透过PerformanceCounter取得特定Process的CPU使用率

  4. 【转】Android虚拟平台的编译和整合

    原文网址:http://blog.csdn.net/rickleaf/article/details/6369065 概要 Android从2008年开始到本文写的2011年,短短三年的时间里成为手机 ...

  5. 私有静态方法private static method-值得用吗?

    用Resharper的同学都知道,如果你写了一个私有函数,这个函数没有访问类里面的其他参数和方法,那么它建议你标记这个方法为私有静态方法,提示是这样的: 值得这样做吗?看看微软的建议: After y ...

  6. D-Separation(D分离)

    是属于 Bayesian network 中的概念

  7. HibernateTemplate和HibernateDaoSupport

    Spring整合Hibernate后,为Hibernate的DAO提供了两个工具类:HibernateTemplate和HibernateDaoSupport HibernateTemplateHib ...

  8. Java正則表達式

    近期工作中常常要用到正則表達式,不得不花点时间对其进行一定的学习.   JDK中提供了2个类来支持正則表達式,各自是java.util.regex.Pattern和java.util.regex.Ma ...

  9. 求斐波那契数列的第n项

    问题描述:斐波那契数列是这样的一个数列,1,1,2,3,5,8,..,即前两项都是1,后面每一项都是其前面两项的和. 现在要你求出该数列的第n项. 分析:该问题是一个经典的数列问题,相信大家在很多语言 ...

  10. oracle Can't connect to X11 window server using ':0.0' /Checking monitor: must be configured to display at least 256 colors解决方法

    Can't connect to X11 window server using ':0.0' 解决方法 1. 以oracle 用户登陆X window 或者 2. root 身份执行 # xhost ...