9.text--评委打分

黑马 ---- 评委打分

在唱歌比赛中,有 6 名评委给选手打分,分数范围是[0-100]之间的整数。
选手最后的得分为:去掉最高分、最低分后的四个评委的平均分
计算出选手最终得分

方法一:

Scanner s = new Scanner(System.in);

    //键盘输入六个评委打分分数,存放在数组中
    double[] points = new double[6];
    for (int i = 1; i <= points.length; i++) {
        System.out.println("请输入第" + i + "位评委的打分:");
        points[i-1] = s.nextDouble();
    }

    //传递实参给形参,定义一个double接受方法传递的数据
    double finalScore = getPoint(points);

    System.out.println("最终的分数是:" + finalScore);

    s.close();
}

//定义方法:去掉最高分、最低分,后计算平均分,并返回主函数
public static double getPoint(double[] nums){

    //通过for循环比较数组中元素,得出最大值、最小值并存放
    double max = nums[0];
    for (int i = 1; i < nums.length; i++) { //求最大值
        if(nums[i] > max){
            max = nums[i];
        }
    }

    double min = nums[0];
    for (int i = 1; i < nums.length; i++) { //求最小值
        if(nums[i] < min){
            min = nums[i];
        }
    }

    //遍历数组,去掉最高、最低并计算平均分
    double score = 0;
    for (int i = 0; i < nums.length; i++) {
        if(nums[i] != max && nums[i] != min){
            score += nums[i];
        }
    }
    score = score / 4;

    return score;
}    

方法二:

//接收方法中输入的数组
        double[] score = getScore();

        //传递数组给方法,并接收方法中求出的最大值
        double max = getMax(score);

        //传递数组给方法,并接收方法中求出的最小值
        double min = getMin(score);

        //传递数组给方法,并接收方法中求出的总和
        double sum = getSum(score);

        //求平均数
        double finalScore = (sum-max-min) / 4;
        System.out.println("这位选手的最终成绩是:" + finalScore);
    }

    //录入成绩
    public static double[] getScore(){
        double[]sc = new double[6];
        Scanner s = new Scanner(System.in);

        for (int i = 1; i <= sc.length; ) {
            System.out.println("请输入第" + i + "位评委的打分:");
            double scores = s.nextDouble();
            if(scores >= 0 && scores <= 100){
                sc[i-1] = scores;
                i++;
            }else {
                System.out.println("输入成绩有误!0-100!");
            }
        }
        s.close();

        return sc;

    }

    //求最大值
    public static double getMax(double[] score){
        double max = score[0];
        for (int i = 1; i < score.length; i++) { //求最大值
            if(score[i] > max){
                max = score[i];
            }
        }
        return max;
    }

    //求最小值
    public static double getMin(double[] score){
        double min = score[0];
        for (int i = 1; i < score.length; i++) { //求最大值
            if(score[i] > min){
                min = score[i];
            }
        }
        return min;
    }

    //求总和
    public static double getSum(double[] score){
        double sum = 0;
        for (int i = 0; i < score.length; i++) {
            sum += score[i];
        }
        return sum;
    }
posted on 2023-03-15 11:11  小黑确实不黑  阅读(86)  评论(0编辑  收藏  举报