9.text--评委打分
黑马 ---- 评委打分
在唱歌比赛中,有 6 名评委给选手打分,分数范围是[0-100]之间的整数。
选手最后的得分为:去掉最高分、最低分后的四个评委的平均分
计算出选手最终得分
方法一:
Scanner s = new Scanner(System.in);
//键盘输入六个评委打分分数,存放在数组中
double[] points = new double[6];
for (int i = 1; i <= points.length; i++) {
System.out.println("请输入第" + i + "位评委的打分:");
points[i-1] = s.nextDouble();
}
//传递实参给形参,定义一个double接受方法传递的数据
double finalScore = getPoint(points);
System.out.println("最终的分数是:" + finalScore);
s.close();
}
//定义方法:去掉最高分、最低分,后计算平均分,并返回主函数
public static double getPoint(double[] nums){
//通过for循环比较数组中元素,得出最大值、最小值并存放
double max = nums[0];
for (int i = 1; i < nums.length; i++) { //求最大值
if(nums[i] > max){
max = nums[i];
}
}
double min = nums[0];
for (int i = 1; i < nums.length; i++) { //求最小值
if(nums[i] < min){
min = nums[i];
}
}
//遍历数组,去掉最高、最低并计算平均分
double score = 0;
for (int i = 0; i < nums.length; i++) {
if(nums[i] != max && nums[i] != min){
score += nums[i];
}
}
score = score / 4;
return score;
}
方法二:
//接收方法中输入的数组
double[] score = getScore();
//传递数组给方法,并接收方法中求出的最大值
double max = getMax(score);
//传递数组给方法,并接收方法中求出的最小值
double min = getMin(score);
//传递数组给方法,并接收方法中求出的总和
double sum = getSum(score);
//求平均数
double finalScore = (sum-max-min) / 4;
System.out.println("这位选手的最终成绩是:" + finalScore);
}
//录入成绩
public static double[] getScore(){
double[]sc = new double[6];
Scanner s = new Scanner(System.in);
for (int i = 1; i <= sc.length; ) {
System.out.println("请输入第" + i + "位评委的打分:");
double scores = s.nextDouble();
if(scores >= 0 && scores <= 100){
sc[i-1] = scores;
i++;
}else {
System.out.println("输入成绩有误!0-100!");
}
}
s.close();
return sc;
}
//求最大值
public static double getMax(double[] score){
double max = score[0];
for (int i = 1; i < score.length; i++) { //求最大值
if(score[i] > max){
max = score[i];
}
}
return max;
}
//求最小值
public static double getMin(double[] score){
double min = score[0];
for (int i = 1; i < score.length; i++) { //求最大值
if(score[i] > min){
min = score[i];
}
}
return min;
}
//求总和
public static double getSum(double[] score){
double sum = 0;
for (int i = 0; i < score.length; i++) {
sum += score[i];
}
return sum;
}