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. Android 圆形按钮实现

    项目中用到的圆形按钮,做个半天,用sharp形式实现,样式代码如下: <Button android:id="@+id/btn_5" android:layout_width ...

  2. java代码模拟先入先出,fifo

    最近在做一个先入先出的出库.琢磨了一下,写了一个简单的java代码测试: public static void main(String[] args) { LinkedList q = new Lin ...

  3. sendto() 向广播地址发包返回errno 13, Permission denied错误

    http://blog.csdn.net/guanghua2_0beta/article/details/52483916 sendto() 向广播地址发包返回errno 13, Permission ...

  4. SQL Server 2000 函数使用---CAST 和 CONVERT

    本文来自:http://www.cnblogs.com/xh831213/category/47654.html 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似 ...

  5. 移动平台前端开发总结(针对iphone,Android等手机)

    移动平台前端开发是指针对高端智能手机(如Iphone.Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定 ...

  6. canvas模糊事件处理

    不知道大家项目中有没有用到canvas时还有时候会出现模糊的情况: 具体推测可能是屏幕改变了,然而canvas的渲染对象并没有跟着一起变: 这里简单介绍个对象,window.devicePixelRa ...

  7. android使用友盟第三方自动更新/手动更新

    最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...

  8. XML及PullParser解析

    一.什么是XML 1.概念:extensive markup language(可扩展的标记语言) XML是一种通用的数据存储和交换格式,与平台无关,与编程语言无关,与操作系统无关.给数据集成和交互提 ...

  9. achartengine andorid图像引擎入门

    最近在帮机械学院开发一个app 用了第三方的图像引擎——achartengine功能还算强大(虽然相比于Html那些第三方图像引擎还是差点不过也够用了) 入门: 参考http://blog.csdn. ...

  10. 求1+2+3+...+n的值,要求不能使用乘除法,for、while、if、else、switch、case、等关键字及条件判断语句(JAVA)

    采用递归和三目表达式注意红色字体一定不能写成n-- 1 package com.hunag; public class Sum { static int sum; public static int ...