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. poj 2299 Ultra-QuickSort(归并排序或是bit 树+离散化皆可)

    题意:给一个数组,计算需要的冒泡排序的次数,元素个数很大,不能用n^2的冒泡排序计算. 解析:这题实际上就是求逆序对的个数,可以用归并排序的方法,我这里用另一种方法写,bit树+离散化.由于元素的值可 ...

  2. ZOJ3516 (图的遍历)

    Tree of Three Time Limit: 2 Seconds      Memory Limit: 65536 KB Now we have a tree and some queries ...

  3. java collection framework

    java collection framework Map

  4. SQL递归查询实现跟帖盖楼效果

    网易新闻的盖楼乐趣多,某一天也想实现诸如网易新闻跟帖盖楼的功能,无奈技术不佳(基础不牢),网上搜索了资料才发现SQL查询方法有一种叫递归查询,整理如下: 一.查询出 id = 1 的所有子结点 wit ...

  5. SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

    Phoenix:Phoenix将SQL查询语句转换成多个scan操作,并编排执行最终生成标准的JDBC结果集.   Spring将数据库访问的样式代码提取到JDBC模板类中,JDBC模板还承担了资源管 ...

  6. 从3dmax中导入模型到UDK Editor(供个人备忘)

    笔记从3dmax中导入模型到UDK Editor 1)      在3dmax中导出 2)      选择FBX格式,保存 3)      在UDK中打开content browser,自己选个pac ...

  7. 删除CentOS / RHEL的库和配置文件(Repositories and configuraiton files)

    1 删除库配置文件 以root权限执行以下的命令: # cd /etc/yum.repos.d/ 列出全部库(repo) #ls CentOS-Base.repo epel.repo mirrors- ...

  8. Unity Layout碰撞检测

    第一次看到LayerMask根本不知道是什么东东,后来问问度娘,看了几篇文章,终于看明白一点点,在网上看到各路大神的解释,终于明白了,LayerMask实际上是一个位码操作,在Unity3d中Laye ...

  9. Unity sqlite学习笔记一

    1.SQLITE的常识 SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它. sqlite的主要优点:零配置(Zero Configur ...

  10. 【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor

    Largest prime factor Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...