需求:
在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数,选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算选手的得分。
目的:锻炼逻辑和代码规范。
代码:
package test;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
/** 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数,
* 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算选手的得分。
* */
int[] scoreArr = getScores();
int max = getMax(scoreArr);
int min = getMin(scoreArr);
int sum = getSum(scoreArr);
int avg = (sum - max - min) / (scoreArr.length - 2);
System.out.println("选手得分:" + avg);
}
public static int getMax(int[] scoreArr) {
int max = scoreArr[0];
for (int i = 0; i < scoreArr.length; i++) {
if (scoreArr[i] > max) {
max = scoreArr[i];
}
}
return max;
}
public static int getMin(int[] scoreArr) {
int min = scoreArr[0];
for (int i = 0; i < scoreArr.length; i++) {
if (scoreArr[i] < min) {
min = scoreArr[i];
}
}
return min;
}
public static int getSum(int[] scoreArr) {
int sum = 0;
for (int i = 0; i < scoreArr.length; i++) {
sum += scoreArr[i];
}
return sum;
}
public static int[] getScores() {
int[] scores = new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; ) {
System.out.println("请输入评委打分:");
int score = sc.nextInt();
if (score >= 0 && score <= 100) {
scores[i] = score;
i++;
} else {
System.out.println("输入不合法!请输入0-100的整数!");
}
}
return scores;
}
}