JAVA-评委打分

  • 需求:
  • 在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
    package _exercis;
    
    import java.util.Random;
    
    public class SingScore {
        public static void main(String[] args) {
            double avg = getScore();
            System.out.println("选手获得的总分:" + avg);
    
    
    
    
        }
        //产生随机数值
        public static int[] randomScore() {
            Random random = new Random();
            //创建动态数组,长度为6
            int[] score = new int[6];
    
            for (int i = 0; i < score.length; i++) {
                //产生的随机数值在0~100之间,并赋值给score[i]
                score[i] = random.nextInt(101);
            }
            //返回随机数组
            return score;
        }
        //获得数组中元素最大的值
        public static int getMaxScore(int[] arr) {
            //把arr[]数组中的第0个下标的索引值 当作是最大的值
            int max = arr[0];
            for (int i = 1; i < arr.length; i++) {
                //每次和arr[i]里的每个元素值和max相比
                //注:i可以从1开始比较,因为如果i=0就和上面的arr[0]重复比较了,避免重复比较,这样可以提高运行效率
                if (arr[i] > max) {
                    //如果arr[i]某个下标的元素值大于max,就把arr[i]某个下标的元素赋值给max-依次循环比较,直到arr.length(6)长度结束
                    max = arr[i];
    
                }
            }
            //返回最大的值
            return max;
        }
        //获得数组中元素最小的值
        public static int getMinScore(int[] arr) {
            //把arr[]数组中的第0个下标的索引值 当作是最小的值
            int min = arr[0];
            for (int i = 1; i < arr.length; i++) {
                //每次和arr[i]里的每个元素值和min相比
                //注:i可以从1开始比较,因为如果i=0就和上面的arr[0]重复比较了,避免重复比较,这样可以提高运行效率
                if (arr[i] < min) {
                    //如果arr[i]某个下标的元素值小于min,就把arr[i]某个下标的元素赋值给min-依次循环比较,直到arr.length(6)长度结束
                    min = arr[i];
    
                }
            }
            //返回最小的值
            return min;
        }
    
        public static double getScore() {
            //得到随机数组
            int[] score = randomScore();
            //得到最小的值
            int min = getMinScore(score);
            //得到最大的值
            int max = getMaxScore(score);
            //累计的总值
            int sum = 0;
            //得到的结果值
            double result = 0;
    
    
            for(int i = 0; i < score.length; i++){
                //把score数组中里面的元素累加
                sum += score[i];
    
            }
    
            result = (sum - min - max) / (score.length - 2);
            //返回结果值
            return result;
        }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值