要求:在唱歌比赛中,可能有多名评委要给选手打分,分数是[0 - 100]之间的整数。选手最后得分为:去掉最高分、最低分后剩余分数的平均分,请编写程序能够录入多名评委的分数,并算出选手的最终得分。
import java.util.Scanner;
//目标篇:实现评委打分案例
public class Test3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入评委个数");
int n = sc.nextInt();
System.out.println("最终得分是"+score(n));
}
public static double score( int number) {//传入评委的人数
int score1[] = new int[number];//评委的人数等于数组的元素个数
Scanner sc = new Scanner(System.in);
//评委打分,把评委打的分放到数组里面
for (int i = 0; i < number; i++) {
System.out.println("请输入第"+(i+1)+"个评委的分数");//i+1是因为数组是从0开始便利的
score1[i] =sc.nextInt();//给数组元素赋值
}
//求出最大,最下值和总分
int sum = 0;
int max = score1[0];
int min = score1[0];
for (int i = 0; i < number; i++) {
sum += score1[i];//求总和
if (score1[i] > max) {//求最大值
max = score1[i];
}
if (score1[i] < min) {//求最小值
min = score1[i];
}
}
//求最终得分,并返回最终得分
return 1.0*(sum - max - min)/(number-2);//乘以1.0是保留一位小数
//number-2是因为去掉最大值和最小值后的平均值
}
}