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

    xiaoxiao2021-04-17  40

    /* *作者:筱筱 *功能: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); } }
    转载请注明原文地址: https://ju.6miu.com/read-673450.html

    最新回复(0)