需求: 在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。 选手的最后得分为: 去掉最高分、最低分后的4个评委的平均分。
import java.util.Scanner;
public class task1 {
public static void main(String[] args) {
// 需求: 在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。
// 选手的最后得分为: 去掉最高分、最低分后的4个评委的平均分
int[] scores = new int[6];
Scanner scanner = new Scanner(System.in);
// 输入评分并进行验证
System.out.println("请输入6位评委的评分(0-100分):");
for (int i = 0; i < scores.length; ) {
System.out.print("第" + (i + 1) + "位评委评分:");
int score = scanner.nextInt();
if (score >= 0 && score <= 100) {
scores[i] = score;
i++;
} else {
System.out.println("评分必须在0-100之间,请重新输入!");
}
}
// 一次性遍历找出最大值、最小值和总和
int maxScore = scores[0];
int minScore = scores[0];
int sum = scores[0];
for (int i = 1; i < scores.length; i++) {
if (scores[i] > maxScore) {
maxScore = scores[i];
}
if (scores[i] < minScore) {
minScore = scores[i];
}
sum += scores[i];
}
// 计算最终得分(去掉最高分和最低分后的平均分)
double finalScore = (sum - maxScore - minScore) / (scores.length - 2.0);
System.out.println("\n评分统计结果:");
System.out.println("最高分:" + maxScore);
System.out.println("最低分:" + minScore);
System.out.println("去掉最高分和最低分后的平均分:" + String.format("%.2f", finalScore));
scanner.close();
}
}