需求:
Admin_Log
– 在唱歌比赛中,有6名评委给选手打分,分数范围是 [ 0 ~ 100 ] 之间的整数。
– 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。
– 请完成上述过程并计算出选手的得分。
代码展示
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
/*
需求:
- 在唱歌比赛中,有6名评委给选手打分,分数范围是 [ 0 ~ 100 ] 之间的整数。
- 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分。
- 请完成上述过程并计算出选手的得分。
*/
// 分析:
// 1. 定义一个数组用来存储6名评委的打分(0~100)
int[] scoresArr = getScore();
for (int i = 0; i < scoresArr.length; i++) {
System.out.println(scoresArr[i]);
}
// 2. 求出数组中的最大值
int max = getMax(scoresArr);
// 3. 求出数组中的最小值
int min = getMin(scoresArr);
// 4. 求出数组中6个分数的总和
int sum = getSum(scoresArr);
System.out.println("总分:" + sum);
// 5. (总和 - 最大值 - 最小值) / 4
int avg = (sum - max - min) / (scoresArr.length - 2);
System.out.println("平均分计算公式:(总和 - 最大值 - 最小值) / " +
(scoresArr.length - 2) + "\n您的平均分为:" + avg);
}
// 录入分数
public static int[] getScore() {
// 定义数组
int[] scores = new int[6];
// 使用键盘录入的形式,输入分数 0~100
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; ) { System.out.println("请输入第" + (i + 1) + "位评委的打分"); int score = sc.nextInt(); if (score >= 0 && score <= 100) {
scores[i] = score;
i++;
} else {
System.out.println("成绩超出了范围,请输入0~100之间的数字,继续录入," +
"当前是第" + (i + 1) + "位评委的打分");
}
}
return scores;
}
// 求数组最大值
public static int getMax(int[] scoresArr) {
int max = scoresArr[0];
// 当i=0时,也就是自身和自身比较,无意义,故从1下标开始。
for (int i = 1; i < scoresArr.length; i++) { if (scoresArr[i] > max) {
max = scoresArr[i];
}
}
return max;
}
// 求数组最小值
public static int getMin(int[] scoresArr) {
int min = scoresArr[0];
// 当i=0时,也就是自身和自身比较,无意义,故从1下标开始。
for (int i = 1; i < scoresArr.length; i++) {
if (scoresArr[i] < min) {
min = scoresArr[i];
}
}
return min;
}
// 求和
public static int getSum(int[] scoresArr) {
int sum = 0;
for (int i = 0; i < scoresArr.length; i++) {
sum += scoresArr[i];
}
return sum;
}
}




