需求:
– 在唱歌比赛中,有6名评委给选手打分,分数范围是 [ 0 ~ 100 ] 之间的整数。
– 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。
– 请完成上述过程并计算出选手的得分。

Admin_Log

代码片段
点我查看完整图片

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;
    }
}