A1030. 球队排名

问题描述

  计算机系学生会体育部组织了一次“酒井杯”足球联赛,有若干支球队参加,现在联赛已经圆满落幕,各队的积分、净胜球、进球数已经计算出来了,现在要你编写一个程序计算各支球队的排名,然后按照名次从高到低的顺序将各个球队的名字打印出来。
  球队的规则如下:
  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
package www.tsinsen.com;

import java.util.Scanner;

public class A1030 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        team[] teams=new team[n];
        for(int i=0;i<n;i++) {
            teams[i]=new team();
            teams[i].name=scan.next();
            teams[i].jifen=scan.nextInt();
            teams[i].jingshengqiu=scan.nextInt();
            teams[i].jinqiu=scan.nextInt();
        }
        //插入排序
        for(int i=1;i<teams.length;i++) {
            for(int j=i;j>0;j--) {
                if(compare(teams[j],teams[j-1])==1) {
                    team temp=teams[j-1];
                    teams[j-1]=teams[j];
                    teams[j]=temp;
                }
                else {
                    break;
                }
            }
        }
        for(int i=0;i<teams.length;i++) {
            System.out.println(teams[i].name);
        }
    }
    public static int compare(team t1,team t2) {
        if(t1.jifen>t2.jifen) {
            return 1;
        }else if(t1.jifen<t2.jifen) {
            return -1;
        }else {
            if(t1.jingshengqiu>t2.jingshengqiu) {
                return 1;
            }else if(t1.jingshengqiu<t2.jingshengqiu) {
                return -1;
            }else {
                if(t1.jinqiu>t2.jinqiu) {
                    return 1;
                }else if(t1.jinqiu<t2.jinqiu) {
                    return -1;
                }else {
                    if(t1.name.compareTo(t2.name)>0) {
                        return -1;
                    }else {
                        return 1;
                    }
                }
            }
        }
        
    }
    public static class team {
        String name;
        int jifen;
        int jingshengqiu;
        int jinqiu;
    }
    
}

 

 
posted @ 2018-02-05 18:05  henu小白  阅读(235)  评论(0编辑  收藏  举报