/* * 一位数组:实现打分 */ package com.lianxi; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test7 { public static void main(String[] args) { // TODO Auto-generated method stub Judge juage=new Judge(); System.out.println(juage.lastFen()); } } class Judge { //定义一个可以存放8个小数的数组 float fens[]=null; int size=3; //构造函数 public Judge() { fens=new float[size]; //初始化。 //输入流 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); try{ for(int i=0;i<fens.length;i++) { System.out.println("请输入第"+(i+1)+"个裁判的成绩"); fens[i]=Float.parseFloat(br.readLine()); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ br.close(); }catch(IOException e){ e.printStackTrace(); } } } //得到运动员的最后得分 public float lastFen() { //去掉最低分(目的就是找到最低分的下标) //去掉最高分 //得到最后分 float lastFen=0; float allFen=0; int maxIndex=this.getHignFenIndex(); int minIndex=this.getLowFenIndex(); for(int i=0;i<fens.length;i++) { if(i!=minIndex&&i!=maxIndex) { allFen+=fens[i]; } } return allFen/(fens.length-2); } //去掉最高分 public int getHignFenIndex() { //选择法:认为第一个是最低的 float maxFen=fens[0]; int maxIndex=0; for(int i=1;i<fens.length;i++) { if(maxFen<fens[i]) {//修改最低分 maxFen=fens[i]; maxIndex=i; } } return maxIndex; } //去掉最低分的下标(下标) 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; } }