体操运动员参加自由体操决赛,有10个评委为他们打分。选手的成绩计算方法是:10个评委分数中,去掉一个最高分和一个最低分,余下分数的平均值为选手的最后得分。

题目:

体操运动员参加自由体操决赛,有10个评委为他们打分。选手的成绩计算方法是:10个评委分数中,去掉一个最高分和一个最低分,余下分数的平均值为选手的最后得分。假设有20名选手。

要求,计算出每个选手的成绩,并给出名次,输出格式如下:

       名次    姓名    评委成绩1绩 (10个成绩依次列出)  最终得分

代码:

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Athletes[] athletes = new Athletes[20];
        String name;
        //录入运动员成绩
        for (int i = 0; i < athletes.length; i++) {
            double[] scores = new double[10];
            System.out.println("请输入第" + (i+1) + "名运动员信息:");
            System.out.println("请输入姓名:");
            name = sc.next();
            System.out.println("请输入10个评委的成绩:");
            for (int j = 0; j < 10; j++) {
                scores[j] = sc.nextDouble();
            }
            Athletes athletes1 = new Athletes(name,scores);
            athletes1.setScore();
            athletes[i] = athletes1;
        }
        //排名
        for (int i = 0; i < athletes.length - 1; i++) {
            for (int j = 1; j < athletes.length-i; j++) {
                if (athletes[j].getScore()>athletes[j-1].getScore()){
                    Athletes temp = athletes[j];
                    athletes[j] = athletes[j-1];
                    athletes[j-1] = temp;
                }
            }
        }
        //录入排名结果
        for (int i = 0; i < athletes.length; i++) {
            athletes[i].setRank(i+1);
        }
        //输出
        for (int i = 0; i < athletes.length; i++) {
            athletes[i].print();
        }
    }
}

class Athletes{
    private String name;
    private int rank;
    private double[] scores;
    private double score;

    private double[] afterSortScore;

    public Athletes() {
    }

    public Athletes(String name, double[] scores) {
        this.name = name;
        this.scores = scores;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }

    public double[] getScores() {
        return scores;
    }

    public void setScores(double[] scores) {
        this.scores = scores;
    }

    public double getScore() {
        return score;
    }

    public void setScore() {
        double max = scores[0];
        double min = scores[0];
        for (int i = 1; i < scores.length; i++) {
            if (scores[i]>max)max = scores[i];
            if(scores[i]

 

你可能感兴趣的:(杂,java,开发语言,算法)