/****************************
* **************************
* 6位评委打分
* 1.分数范围[0-100]的整数
* 2.结果是去掉最高分和最低分后的平均分
* 3.完成上述过程并计算选手得分
* *************************
* **************************/
/*主函数*/
double score[] = new double[6];
double temp; //暂存输入的数字,判断是否在范围内
double avg; //接收返回的均值
int cnt =0; //判断输入了几个数字了
Scanner sc = new Scanner(System.in);
System.out.println("请输入0-100(包括0和100)的数字");
for (int i = 0; i < score.length; i++) {
temp = sc.nextDouble();
if ((0 <= temp && temp <= 100)&&(Math.round(temp) == temp)) { //************判断是否[0,100]且为整数*********************
score[i] = temp;
cnt++; //****************这一句和上一句保证不用六个数字重新输入,合法的已经输入进去了,从不合法的那个位置重新继续输入*******************
} else {
System.out.println("输入错误!请输入0-100(包括0和100)的整数");
i = cnt-1;//**************i置为cnt-1,因为不仅要顾及表达式1,因为表达式3,else完了i还要自增1所以赋值cnt-1********************
}
}
avg = Jugde(score);
System.out.println("最后得分为:"+avg);
/*打分函数*/
double bigestFirst = score[0]; //存放最大值
double smallestFirst = score[0]; //存放最小值
double sum = 0; //存放四个数字的和
double avg; //存放四个数字的平均值
for (int i = 1; i < score.length; i++) { //寻找最大值
if (score[i] > bigestFirst) {
bigestFirst = score[i];
}
}
//System.out.println("最大值:"+bigestFirst);
for (int i = 1; i < score.length; i++) { //寻找最小值
if (score[i] < smallestFirst) {
smallestFirst = score[i];
}
}
// System.out.println("最小值:"+smallestFirst);
for (int i = 0; i < score.length; i++) { //遇见第一个和最大或者最小值相同的数的时候直接将他置-1然后退出循环
if (score[i] == bigestFirst) {
score[i] = -1;
break;
}
}
for (int i = 0; i < score.length; i++) {
if (score[i] == smallestFirst) {
score[i] = -1;
break;
}
}
/* System.out.println("处理完的数组元素为");
for (int i = 0; i < score.length; i++) {
System.out.println(score[i]);
}*/
for (int i = 0; i < score.length; i++) {
if (score[i] != -1)
sum += score[i];
}
// System.out.println("和为:"+sum);
avg = sum / 4.0;
// System.out.println("平均值为:"+avg);
return avg;
}