【ACM之旅】球队排名
来源:互联网 发布:java递归求阶乘 编辑:程序博客网 时间:2024/05/08 21:01
一、[题目] 球队排名
时间限制:1.0s 内存限制:512.0MB
问题描述
计算机系学生会体育部组织了一次“酒井杯”足球联赛,有若干支球队参加,现在联赛已经圆满落幕,各队的积分、净胜球、进球数已经计算出来了,现在要你编写一个程序计算各支球队的排名,然后按照名次从高到低的顺序将各个球队的名字打印出来。
球队的规则如下:
1、先比较积分,积分高者名次在前;
2、如果积分相同则比较净胜球,净胜球多者名次在前;
3、如果积分、净胜球都相同则比较进球数,进球数多者名次在前;
4、对于积分、净胜球和进球数都一样的球队,根据他们的名称按照字典顺序排列。
现在假设各个球队的名称都是由大写英文字母组成,并且没有重名的球队。
输入格式
第一行是一个正整数N(2<=N<=10),代表球队的数目
接下来有N行,每一行均包括一个字符串和3个整数,其中字符串代表球队的名称,长度在2与20之间,3个整数依次为球队的积分,净胜球和进球数,其中积分和进球数是0到100间的整数,净胜球的绝对值小于100。
输出格式
共N行,每行输出一个字符串,即球队的名称。
样例输入
4ACMILAN 5 1 5SCHALKE 5 1 7FENERBAHCE 4 -1 7PSV 7 -1 2
样例输出
PSVSCHALKEACMILANFENERBAHCE
二、[代码]:
PS. 球队排名 是一道排序类题目,与之前数列排序 不同的是其为“多级排序”,也就是升级版,因为同样涉及排序操作,我们依然可以利用"标准C快排库函数"进行快速解题,解题的关键就在于充分理解“多级排序”,其实我们只需将执行排序的函数体稍加改变即可,以下列出我的解法。
算法一: 基础库函数法(利用标准C快速排序函数 qsort())
#include<stdio.h>#include<stdlib.h>#include<string.h>struct TeamRecord{ //用于存储球队比赛数据的结构体 char name[21]; int a,b,c;}Team[10] = {0};int cmp(const void *a, const void *b) //快排函数体{ TeamRecord *ta = (TeamRecord*)a; TeamRecord *tb = (TeamRecord*)b; int ra = tb->a - ta->a; int rb = tb->b - ta->b; int rc = tb->c - ta->c; if(ra) return ra; //如果一级比较(积分比较)相等,则进行二级比较,否则返回比较结果 else if(rb) return rb; //如果二级比较(净胜球)相等,则进行三级比较,否则返回比较结果 else if(rc) return rc; //如果三级比较(进球数)相等,则进行四级比较,否则返回比较结果 return strcmp(ta->name, tb->name); //第四级比较(进行字符串比较,按字母顺序排列)}int main(){ int i, n; scanf("%d",&i); n = i; while(i--){ //依次读入球队比赛数据 scanf("%s %d %d %d", Team[i].name, &Team[i].a, &Team[i].b, &Team[i].c); } qsort(Team, n, sizeof(TeamRecord), cmp); //进行排序 while(++i<n){ //对结果进行输出 printf("%s\n", Team[i].name); } return 0;}
欢迎评论和转载,转载请注明文章出处,我对此表示最真诚的敬意!
0 0
- 【ACM之旅】球队排名
- 清澄A1030. 球队排名
- 刷清橙OJ--A1030.球队排名
- ACM大赛排名问题 之 竞赛排行榜
- 【原创】机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码
- ACM比赛排名
- Aoj 418 ACM 排名
- HDU ACM 1236 排名
- 【水】AHU-418 ACM排名
- HDU ACM 2093 考试排名
- 理工大学ACM平台题答案关于C语言 2255 期末考试之排名次
- ACM之旅
- ACM之旅
- ACM之旅起航
- ACM 262. [NOI1997] 竞赛排名(读题)
- 杭电acm 1236 排名 list排序
- ACM最终排名(C语言)
- HDU 杭电 acm-2093-考试排名
- struts2请求过程源码分析
- 使用Fragment和TranslateAnimation详解
- Cocos2d-x 3.x学习记录
- PE 1 Multiples of 3 and 5
- hdu 1372 bfs最少棋子步数
- 【ACM之旅】球队排名
- 老外写的系统统计脚本
- 无上限多例类(Multiton)
- SQLSERVER 三值逻辑
- 1.flume简介
- 数据库用户和权限
- 若干最小路径覆盖问题
- EasyUI-DataGrid多行动态选择性合并算法实现
- ThinkPHP学习笔记(8)在网页中配置Config文件内容