/*
*作者:筱筱
*功能: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);
}
}
【java】使用一维数组实现评委打分功能
最新推荐文章于 2023-08-07 22:45:55 发布