需求:
在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
实现代码:
package anli;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
//需求:
//在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。
// 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
double[] arr=scores(6);
System.out.println("去掉最高分、最低分后选手得分为:"+avg(arr));
}
//定义输入的方法,将数据存放于数组中
public static double[] scores(int n){
double[] scores=new double[n];
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请输入第"+(i+1)+"个评委分数:");
scores[i]= scanner.nextInt();
if (scores[i]<0||scores[i]>100){
System.out.println("输入错误,请输入1-100之间的整数!!!");
continue;
}
}
return scores;
}
//定义一个去掉最高分最低分后平均分的方法
public static double avg(double[] arr){
double max=arr[0];
for (int i = 0; i < arr.length; i++) {
if (max <arr[i]) {
max=arr[i];
}
}
double min=arr[0];
for (int i = 0; i < arr.length; i++) {
if (min >arr[i]) {
min=arr[i];
}
}
double sum=0;
for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}
double avg=(sum-max-min)/ (arr.length-2);
return avg;
}
}
运行截图: