JAVA基础--歌手打分功能实现

Posted yhj-notes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA基础--歌手打分功能实现相关的知识,希望对你有一定的参考价值。

问题:在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。输入每个评委的评分,求某选手的得分。

分析:该题的关键在于,当最高分和最低分多次出现时,如何处理能够使最高分和最低分只去掉一次。可以设置布尔值,让去掉操作只执行一次。

测试方法:

 1 public static void test(){
 2         Scanner sc = new Scanner(System.in);
 3         System.out.println("表演完毕,请各评委打分:");
 4         int[] a = new int[10];
 5         for(int i=0;i<10;i++){
 6             int score = sc.nextInt();
 7             a[i] = score;
 8         }
 9         System.out.println("10位评委的评分分别是:");
10         show(a);
11         int[] b = getScore(a);
12         System.out.println("去掉一个最高分,一个最低分后:");
13         show(b);
14         getAvg(b);
15         
16     }

打印方法:

//遍历数组
    public static void show(int[] a){
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }

获取最大元素:

//求最大值
    public static int getMax(int[] a){
        int max = a[0];
        for (int i = 0; i < a.length; i++) {
            if(a[i]>max){
                max = a[i];
            }
        }
        return max;
        //System.out.println("该数组最大元素为:"+max);
    }

获取最小元素:

//求最小值
    public static int getMin(int[] a){
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if(a[i]<min){
                min = a[i];
            }
        }
        return min;
        //System.out.println("该数组最小元素为:"+min);
    }

 得到新的得分数组:

//评分方法
    //参数:得分数组
    //返回值:去掉最高分和最低分后的数组
    public static int[] getScore(int[] a){
        int max = getMax(a);
        int min = getMin(a);
        int l = a.length-2;
        int[] b = new int[l];
        int count = 0;//计数器
        boolean flag1 = true;
        boolean flag2 = true;
        for(int i=0;i<a.length;i++){//将原数组的值,选择性的赋给新数组
            if(a[i]==max&&flag1==true){
                flag1 = false;
                continue;
            }
            if(a[i]==min&&flag2==true){
                flag2 = false;
                continue;
            }
            if(count<l){
                b[count] = a[i];
                count++;
            }            
        }        
        return b;
        
    }

得到最终平均得分:

//求平均数
    public static void getAvg(int[] a){
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum+=a[i];
        }
        int avg = sum/a.length;
        System.out.println("该选手最终得分:"+avg);
    }

 

以上是关于JAVA基础--歌手打分功能实现的主要内容,如果未能解决你的问题,请参考以下文章

杭电ACM2014--青年歌手大奖赛_评委会打分

1149: 零起点学算法56——青年歌手大奖赛_评委会打分

HDoj 2014 青年歌手大奖赛_评委会打分

2014. 青年歌手大奖赛_评委会打分

java毕设项目开源啦,springboot+vue的音乐网站

java毕设项目开源啦,springboot+vue的音乐网站