需求:
Admin_Log
– 在唱歌比赛中,有6名评委给选手打分,分数范围是 [ 0 ~ 100 ] 之间的整数。
– 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。
– 请完成上述过程并计算出选手的得分。
代码展示
import java.util.Scanner; public class Score { public static void main(String[] args) { /* 需求: - 在唱歌比赛中,有6名评委给选手打分,分数范围是 [ 0 ~ 100 ] 之间的整数。 - 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。 - 请完成上述过程并计算出选手的得分。 */ // 分析: // 1. 定义一个数组用来存储6名评委的打分(0~100) int[] scoresArr = getScore(); for (int i = 0; i < scoresArr.length; i++) { System.out.println(scoresArr[i]); } // 2. 求出数组中的最大值 int max = getMax(scoresArr); // 3. 求出数组中的最小值 int min = getMin(scoresArr); // 4. 求出数组中6个分数的总和 int sum = getSum(scoresArr); System.out.println("总分:" + sum); // 5. (总和 - 最大值 - 最小值) / 4 int avg = (sum - max - min) / (scoresArr.length - 2); System.out.println("平均分计算公式:(总和 - 最大值 - 最小值) / " + (scoresArr.length - 2) + "\n您的平均分为:" + avg); } // 录入分数 public static int[] getScore() { // 定义数组 int[] scores = new int[6]; // 使用键盘录入的形式,输入分数 0~100 Scanner sc = new Scanner(System.in); for (int i = 0; i < scores.length; ) { System.out.println("请输入第" + (i + 1) + "位评委的打分"); int score = sc.nextInt(); if (score >= 0 && score <= 100) { scores[i] = score; i++; } else { System.out.println("成绩超出了范围,请输入0~100之间的数字,继续录入," + "当前是第" + (i + 1) + "位评委的打分"); } } return scores; } // 求数组最大值 public static int getMax(int[] scoresArr) { int max = scoresArr[0]; // 当i=0时,也就是自身和自身比较,无意义,故从1下标开始。 for (int i = 1; i < scoresArr.length; i++) { if (scoresArr[i] > max) { max = scoresArr[i]; } } return max; } // 求数组最小值 public static int getMin(int[] scoresArr) { int min = scoresArr[0]; // 当i=0时,也就是自身和自身比较,无意义,故从1下标开始。 for (int i = 1; i < scoresArr.length; i++) { if (scoresArr[i] < min) { min = scoresArr[i]; } } return min; } // 求和 public static int getSum(int[] scoresArr) { int sum = 0; for (int i = 0; i < scoresArr.length; i++) { sum += scoresArr[i]; } return sum; } }