1.需求:
在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。
2.思路:
我的想法是是定义一个新数组,题目中提到了十个评委,也就是数组的长度(length)为10
利用for循环和nextDouble来记录每一个评委打出的分数
去掉最高分和最低分的话,我认为还是利用循环,把数组中的数据比较一遍就能筛出来了
算平均分之前肯定得先算一下总分,这个我用的是增强for (咱也不是很懂,只是会用一下)
3.代码
import java.util.Scanner;
/**
* @Author: Bun
* @Version: 1.0
* @Date: 2022/9/25-11:03
*/
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double[] point = new double[10];
for (int i = 0; i < point.length; i++) {
System.out.println("请第" + (i + 1) + "位评委的打分");
point[i] = input.nextDouble();
}
//求最高分和最低分
int max, min;
max = 0;
min = 0;
for (int i = 0; i < point.length; i++) {
double pt = point[i];
if (pt > point[max]) {
max = i;
}
if (pt < point[min]) {
min = i;
}
}
System.out.println("最高分为: " + point[max]);
System.out.println("最低分为: " + point[min]);
double total = 0;
for (double score : point) {
total += score;
}
total = total - point[max] - point[min];
System.out.println("去掉最高分和最低分,歌手的得分为: " + total / (point.length - 2));
}
}