题目:
跳水比赛,8个评委打分。运动员的成绩是8个成绩去掉一个最高分,去掉一个最低分,剩下的6个分数 的平均分就是最后 得分。使用以为数组实现打分功能 。请把打分最高的评委和最低的评委找出来。
解析:
package homework1; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; /*
* 跳水比赛,8个评委打分。运动员的成绩是8个成绩去掉一个最高分,去掉一个最低分,
* 剩下的6个分数 的平均分就是最后 得分。使用以为数组实现打分功能 。
* 请把打分最高的评委和最低的评委找出来。
* */
public class homework1 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Judge judge=new Judge();
System.out.println(judge.lastFen());
} } class Judge
{
//定义一个可以存放8个小树数组
float fens[] = null;
int size = 8;
//构造函数
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) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
//得到运动员的最后得分
public float lastFen()
{
float allFen=0; int minIndex=this.getLowFenIndex();
int maxIndex=this.getHighFenIndex(); for(int i=0;i<fens.length;i++)
{
if(i!=minIndex&&i!=maxIndex)
{
allFen+=fens[i];
}
}
return allFen/(fens.length-2); //3. 得到平均分
}
//2. 去掉最高分
public int getHighFenIndex()
{
//选择法
//认为第一个是最低分
float highFen = fens[0];
int maxIndex = 0;
for(int i= 1;i<fens.length;i++)
{
if(highFen>fens[i])
{
//修改最低份
highFen=fens[i];
maxIndex = i;
}
}
return maxIndex;
}
//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;
}
}