A1030. 球队排名

A1030. 球队排名
时间限制: 1.0s   内存限制: 512.0MB  
问题描述
  计算机系学生会体育部组织了一次“酒井杯”足球联赛,有若干支球队参加,现在联赛已经圆满落幕,各队的积分、净胜球、进球数已经计算出来了,现在要你编写一个程序计算各支球队的排名,然后按照名次从高到低的顺序将各个球队的名字打印出来。
  球队的规则如下:
  1、先比较积分,积分高者名次在前;
  2、如果积分相同则比较净胜球,净胜球多者名次在前;
  3、如果积分、净胜球都相同则比较进球数,进球数多者名次在前;
  4、对于积分、净胜球和进球数都一样的球队,根据他们的名称按照字典顺序排列。
  现在假设各个球队的名称都是由大写英文字母组成,并且没有重名的球队。
输入格式
  第一行是一个正整数N(2<=N<=10),代表球队的数目
  接下来有N行,每一行均包括一个字符串和3个整数,其中字符串代表球队的名称,长度在2与20之间,3个整数依次为球队的积分,净胜球和进球数,其中积分和进球数是0到100间的整数,净胜球的绝对值小于100。
输出格式
  共N行,每行输出一个字符串,即球队的名称。
样例输入
4
ACMILAN 5 1 5
SCHALKE 5 1 7
FENERBAHCE 4 -1 7
PSV 7 -1 2


样例输出

PSV
SCHALKE
ACMILAN
FENERBAHCE

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <algorithm>
  5. using namespace std;
  6. struct qiudui{
  7.     char mingzi[30];
  8.     int jifen;
  9.     int jingsheng;
  10.     int jinqiu;
  11. }buf[20];
  12. bool cmp(qiudui a, qiudui b){
  13.     int tmp=strcmp(a.mingzi,b.mingzi);
  14.     if(a.jifen!=b.jifen)
  15.         return a.jifen>b.jifen;
  16.     else if(a.jingsheng!=b.jingsheng)
  17.         return a.jingsheng>b.jingsheng;
  18.     else if(a.jinqiu!=b.jinqiu)
  19.         return a.jinqiu>b.jinqiu;
  20.     else
  21.         return tmp<0;
  22. }
  23. int main(){
  24.     int n;
  25. //  do{
  26.         scanf("%d",&n);
  27. //      (n<2||n>10)&&printf("");
  28. //  }while(n<2||n>10);
  29.     for(int i=0;i<n;i++){
  30. //      do{
  31.             scanf("%s %d %d %d",&buf[i].mingzi,&buf[i].jifen,&buf[i].jingsheng,&buf[i].jinqiu);
  32. //          (strlen(buf[i].mingzi)<2||strlen(buf[i].mingzi)>20||buf[i].jingsheng>100||buf[i].jingsheng<-100||buf[i].jifen<0||buf[i].jifen>100||buf[i].jinqiu<0||buf[i].jinqiu>100)&&printf("");
  33. //      }while(strlen(buf[i].mingzi)<2||strlen(buf[i].mingzi)>20||buf[i].jingsheng>100||buf[i].jingsheng<-100||buf[i].jifen<0||buf[i].jifen>100||buf[i].jinqiu<0||buf[i].jinqiu>100);
  34.     }
  35.     sort(buf,buf+n,cmp);
  36.     for(int i=0;i<n;i++){
  37.         printf("%s\n",buf[i].mingzi);
  38.     }
  39.     system("pause");
  40.     return 0;
  41. }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值