假设一位运动员完成比赛后,8位裁判为其打分,最终结果为去掉最高分与最低分之后的平均分,请给出上述代码。
package xxxx;
import java.util.*;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
评分系统 judge=new 评分系统();
System.out.println("这位运动员的最后得分为:"+judge.LastFen());
}
}
class 评分系统{
//定义一个可以存放8个小数的数组
float []fens=null;
int size=8;
//构造函数
public 评分系统(){
fens=new float[size];
//初始化
for(int i=0;i<fens.length;i++){
try {
System.out.println("请输入第"+(i+1)+"位裁判的成绩");
Scanner scanner=new Scanner(System.in);
fens[i]=scanner.nextFloat();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//得到运动员的最后得分
public float LastFen(){
float allFen=0;
float lastFen=0;
int lowIndex=this.getLowFenIndex();
int highIndex=this.getHighFenIndex();
for(int i=0;i<fens.length;i++){
if(i!=lowIndex&&i!=highIndex){
allFen+=fens[i];
}
}
lastFen=allFen/(fens.length-2);
return lastFen;
}
//1.最低分(找到最低分的 下标)
public int getLowFenIndex(){
//选择法
//认为第一个是最低分
float minFen=fens[0];
int minIndex=0;
for(int i=1;i<fens.length;i++){
if(minFen>fens[i]){
minFen=fens[i];
minIndex=i;
}
}
return minIndex;
}
//2.最高分(找到最高分的 下标)
public int getHighFenIndex(){
//选择法
//认为第一个是最高分
float highFen=fens[0];
int highIndex=0;
for(int i=1;i<fens.length;i++){
if(highFen<fens[i]){
highFen=fens[i];
highIndex=i;
}
}
return highIndex;
}
}