【java】使用一维数组实现评委打分功能

/*
 *作者:筱筱
 *功能:1、跳水比赛,10个评委打分。运动员的成绩是10个成绩去掉一个最高分、去掉一个最低分,
 *  剩下的8个分数的平均分就是最后得分。使用一维数组实现打分功能。
 *  2、请把打最高分的评委和最低分的评委找出来
 *  3、找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。
 *  最差评委就是打分和最后得分相差最大的。
 */


public class JudgesScore {
    public static void main(String[] args){
        float arr[] = {8.1f, 9.2f, 8.9f, 7.5f, 9.0f,
                8.6f, 8.3f, 7.8f, 9.5f, 8.8f};
        Score score = new Score();
        score.function(arr);        
    }
}
class Score{
    float total=0;
    int maxIndex;
    int minIndex;
    float minScore;
    float minGapScore;
    int minGapIndex;
    float maxGapScore;
    int maxGapIndex;
    float avgScore;
    float gap;
    public void function(float arr[]){
        float maxScore = arr[0];
        float minScore = arr[0];
        for(int i=0; i<arr.length; i++){
            //找出评分最高的评委
            if(arr[i]>maxScore){
                maxScore = arr[i];
                maxIndex = i;               
            }
            //找出评分最低的评委
            if(arr[i]<minScore){
                minScore = arr[i];
                minIndex = i;               
            }           
        }
        //计算去掉最高分和最低分之后的和及其平均分
        for(int i=0; i<arr.length; i++){
            if(i!=maxIndex && i!=minIndex){
                    total = total+arr[i];
                    avgScore = total/(arr.length-2);
            }
        }
        //找出最佳评委
        gap = Math.abs(avgScore-arr[0]);
        for(int i=0; i<arr.length; i++){            
            if(gap > Math.abs(avgScore-arr[i])){
                gap = Math.abs(avgScore-arr[i]);    
                minGapScore = arr[i];
                minGapIndex = i;
            }           
        }
        //找出最差评委
        for(int i=0; i<arr.length; i++){
            if(gap < Math.abs(avgScore-arr[i])){
                gap = Math.abs(avgScore-arr[i]);    
                maxGapScore = arr[i];
                maxGapIndex = i;
            }
        }
        //输出评分最高和最低的评委,分数和及平均分
        System.out.println("第"+(minIndex+1)+"位评委的评分最低,分数是"+minScore);
        System.out.println("第"+(maxIndex+1)+"位评委的评分最高,分数是"+maxScore);
        System.out.println("去掉最高分和最低分后,总分是"+total+" 平均分是:"+avgScore);   
        System.out.println("第"+(minGapIndex+1)+"位评委的评分最接近平均分,分数是"+minGapScore);
        System.out.println("第"+(maxGapIndex+1)+"位评委的评分最不接近平均分,分数是"+maxGapScore);
    }   
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值