/*
*
* 习题练习
* 功能:裁判打分
* 得出平均分,最高分和最低分
*/
package com.haitao.array;
import java.io.*;
public class Demo6_7 {
public static void main(String[] args) {
Judge judge=new Judge();
System.out.println(judge.lastFen());
int hig=judge.getHightFenIndex();
int low=judge.getLowFenIndex();
System.out.println("裁判给出的最高分是:"+judge.fens[hig]);
System.out.println("裁判给出的最低分是:"+judge.fens[low]);
}
}
class Judge
{
//定义一个可以存放8个小数的数组
int size=5;
float fens[]=null;
//构造函数
public Judge()
{
fens=new float[size];
//初始化。
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader bf=new BufferedReader(isr);
try {
for(int i=0;i<fens.length;i++)
{
System.out.println("请输入第"+(i+1)+"个裁判给的分数:");
fens[i]=Float.parseFloat(bf.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
bf.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//得到一个运动员的最后得分
public float lastFen()
{
//1.去掉最低分(找到最低分的下标)
//2.去掉最高分
//3.得到最后的平均分
float allFen=0;
int minIndex=this.getLowFenIndex();
int maxIndex=this.getHightFenIndex();
for(int i=0;i<fens.length;i++)
{
if(i!=minIndex&&i!=maxIndex)
{
allFen+=fens[i];
}
}
return allFen/(fens.length-2 );
}
//1.去掉最低分(找到最低分的下标)
public int getLowFenIndex()
{
//选择法,认为第一个是最低分
float minFen=fens[0];
int minFenIndex=0;
for(int i=1;i<fens.length;i++)
{
if(fens[minFenIndex]>fens[i])
{
//修改最低分
minFen=fens[i];
minFenIndex=i;
}
}
return minFenIndex;
}
//3.得到最后的平均分
public int getHightFenIndex()
{
//选择法,认为第一个是最低分
float maxFen=fens[0];
int maxFenIndex=0;
for(int i=1;i<fens.length;i++)
{
if(fens[maxFenIndex]<fens[i])
{
//修改最低分
maxFen=fens[i];
maxFenIndex=i;
}
}
return maxFenIndex;
}
}