题目:
体操运动员参加自由体操决赛,有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]<min)min = scores[i];
}
double sum = 0;
for (int i = 1; i < scores.length - 1; i++) {
sum+=scores[i];
}
sum = sum - max -min;
this.score = sum/8;
}
public void print(){
System.out.print("名次:" + rank + " 姓名:" + name + " 成绩:");
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i] + " ");
}
System.out.println("最终得分:" + score);
}