题目:10个评委给100张照片打分,去掉一个最高分,去掉一个最低分,求1、每张照片的最后得分;2、计算出最公平和最不公平的评委

题目:

某公司同兄弟公司在今年3月份举办了摄影比赛,收到100张参赛照片,有10个评委为每张照片评分,分数为1~100分,照片最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值,照片分数已经存入grade[100][10]整型数组中,grade[1][3]表示4号评委对2号照片的评分。

1、请编程输出每张照片的最后得分
2、同时对评委评分进行裁判,即在10个评委中找出最公平(评分最接近平均分)和最不公平(与平均分差别最大)的评委,请输出最公平和最不公平的评委号数。

代码:

public class Test {
    public static void main(String[] args) {

        // 存储评委对照片的评分,例如:grade[1][3]表示4号评委对2号照片的评分
        int[][] grade = new int[100][10];

        // 存储100张照片的平均分
        double[] avgGrade = new double[100];

        // 存储每位评委对100幅作品的打分与平均分的差值之和
        double[] differenceSum = new double[10];

        // 对小数进行格式化,下面会用到
        DecimalFormat decimal = new DecimalFormat("#.00");

        // 生成测试数据
        Random random = new Random();
        for (int i = 0; i < grade.length; i++) {
            // 生成的是10个评委对每张照片的打分
            for (int j = 0; j < grade[i].length; j++) {
                // 随机生成0~100的分数
                grade[i][j] = random.nextInt(101);
            }
        }

        // 去掉一个最低分和一个最高分,获得每张照片的平均分
        for (int i = 0; i < grade.length; i++) {
            // 把每张照片的10个分数复制到一个新的数组中
            int[] score = Arrays.copyOf(grade[i], grade[i].length);
            // 把新数组中的元素按照从小到大的顺序排序
            Arrays.sort(score);
            // 计算每张照片的总分
            double sum = 0;
            // 由于上面已经进行了排序,然后下面去除最低分和最高分,就可以获得中间8个分数的总分
            for (int j = 1; j < score.length - 1; j++) {
                sum += score[j];
            }
            // 获得每张照片的平均分
            avgGrade[i] = Double.parseDouble(decimal.format(sum / 8));
        }

        // 输出每张照片的最后得分(平均分)
        for (int i = 0; i < avgGrade.length; i++) {
            System.out.println("第" + (i + 1) + "张照片的得分是" + avgGrade[i] + "分");
        }

        // 计算每位评委对100幅作品的打分与平均分的差值之和
        for (int i = 0; i < grade.length; i++) {
            for (int j = 0; j < grade[i].length; j++) {
                differenceSum[j] += Math.abs(grade[i][j] - avgGrade[i]);
            }
        }

        // 找出最公平的和最不公平的评委号码
        int noFairIndex = 0;
        int fairIndex = 0;
        for (int i = 0; i < differenceSum.length; i++) {
            if (differenceSum[noFairIndex] < differenceSum[i]) {
                noFairIndex = i;
            }
            if (differenceSum[fairIndex] > differenceSum[i]) {
                fairIndex = i;
            }
        }
        System.out.println("最公平:" + (fairIndex + 1) + "号评委");
        System.out.println("最不公平:" + (noFairIndex + 1) + "号评委");
    }
}

结果:

1张照片的得分是50.88分
第2张照片的得分是47.5分
第3张照片的得分是51.38分
第4张照片的得分是72.75分
第5张照片的得分是52.5分
第6张照片的得分是60.88分
第7张照片的得分是40.0分
第8张照片的得分是36.88分
第9张照片的得分是39.5分
第10张照片的得分是49.0分
第11张照片的得分是43.88分
第12张照片的得分是51.5分
第13张照片的得分是39.5分
第14张照片的得分是44.62分
第15张照片的得分是37.25分
第16张照片的得分是38.88分
第17张照片的得分是31.38分
第18张照片的得分是37.62分
第19张照片的得分是51.88分
第20张照片的得分是63.5分
第21张照片的得分是42.38分
第22张照片的得分是52.62分
第23张照片的得分是50.88分
第24张照片的得分是54.5分
第25张照片的得分是52.12分
第26张照片的得分是51.5分
第27张照片的得分是50.25分
第28张照片的得分是62.88分
第29张照片的得分是49.88分
第30张照片的得分是43.12分
第31张照片的得分是54.62分
第32张照片的得分是42.88分
第33张照片的得分是66.5分
第34张照片的得分是69.75分
第35张照片的得分是54.12分
第36张照片的得分是43.5分
第37张照片的得分是45.0分
第38张照片的得分是52.88分
第39张照片的得分是61.88分
第40张照片的得分是49.12分
第41张照片的得分是54.0分
第42张照片的得分是53.62分
第43张照片的得分是44.62分
第44张照片的得分是62.62分
第45张照片的得分是63.75分
第46张照片的得分是60.0分
第47张照片的得分是20.38分
第48张照片的得分是61.0分
第49张照片的得分是48.88分
第50张照片的得分是63.25分
第51张照片的得分是42.12分
第52张照片的得分是60.12分
第53张照片的得分是54.5分
第54张照片的得分是58.38分
第55张照片的得分是37.0分
第56张照片的得分是43.12分
第57张照片的得分是67.0分
第58张照片的得分是35.38分
第59张照片的得分是44.12分
第60张照片的得分是80.75分
第61张照片的得分是34.62分
第62张照片的得分是39.38分
第63张照片的得分是62.25分
第64张照片的得分是40.5分
第65张照片的得分是40.88分
第66张照片的得分是70.5分
第67张照片的得分是60.75分
第68张照片的得分是42.12分
第69张照片的得分是62.75分
第70张照片的得分是50.25分
第71张照片的得分是53.62分
第72张照片的得分是47.38分
第73张照片的得分是62.75分
第74张照片的得分是62.5分
第75张照片的得分是60.5分
第76张照片的得分是47.12分
第77张照片的得分是49.88分
第78张照片的得分是43.38分
第79张照片的得分是57.88分
第80张照片的得分是59.38分
第81张照片的得分是75.12分
第82张照片的得分是42.12分
第83张照片的得分是22.62分
第84张照片的得分是61.88分
第85张照片的得分是57.62分
第86张照片的得分是53.25分
第87张照片的得分是44.5分
第88张照片的得分是66.12分
第89张照片的得分是30.5分
第90张照片的得分是51.75分
第91张照片的得分是70.12分
第92张照片的得分是70.25分
第93张照片的得分是40.88分
第94张照片的得分是34.12分
第95张照片的得分是64.12分
第96张照片的得分是45.5分
第97张照片的得分是35.0分
第98张照片的得分是46.75分
第99张照片的得分是68.88分
第100张照片的得分是56.25分
最公平:9号评委
最不公平:6号评委
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值