在演讲比赛中,有若干名评委给选手打分,分数是0~100的整数,选手的最终分数为:去掉最高分和最低分之后的平均分。请计算出选手的最终分数。
package com.ty.java;
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
System.out.println("该选手的最终平均分:" + getscore(10));
}
public static double getscore(int n){
int[] a = new int[n]; //构建动态数组
int sum = 0; //记录总分
Scanner sc = new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
int score = sc.nextInt();
a[i] = score;
}
int max = a[0];
int min = a[0];
for (int i = 0; i < a.length; i++) {
sum += a[i];
if (a[i] > max){
max = a[i];
}
if (a[i] < min){
min = a[i];
}
}
return 1.0 * (sum - max - min)/(n - 2); //因为平均分可能为小数,所以*1.0强制转换为小数
}
}
代码运行如下:
com.ty.java.Score
96
90
85
88
100
78
80
92
72
84
该选手的最终平均分:86.625
Process finished with exit code 0