Java编写下面的程序:控制台提示并键盘录入,总共6个评委给1名选手打分,分数为[1-100]之间的int类型整数; 对录入分数进行判断,超出范围给出提示,重新录入;将分数存储到合适的数组中 ; 去除一个最高分、一个最低分,统计该选手的平均成绩,并在控制台打印。
时间: 2024-10-22 19:21:22 浏览: 18
为了实现这个Java程序,你可以按照以下步骤编写:
```java
import java.util.Scanner;
public class ScoreCalculator {
public static void main(String[] args) {
int[] scores = new int[6]; // 创建一个长度为6的数组来存储分数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入选手的六位评委的评分(1-100之间):");
for (int i = 0; i < 6; i++) {
while (true) { // 循环直到输入有效分数
try {
int score = scanner.nextInt();
if (score >= 1 && score <= 100) { // 判断是否在范围内
scores[i] = score;
break; // 输入有效,跳出循环
} else {
System.out.println("评分超出范围,请重新输入第" + (i+1) + "位评委的分数:");
}
} catch (InputMismatchException e) {
System.out.println("输入错误,请输入数字:");
scanner.next(); // 清除无效输入
}
}
}
// 排序并移除最高分和最低分
Arrays.sort(scores);
int highestScore = scores[5];
int lowestScore = scores[0];
for (int j = 0; j < 4; j++) { // 取前四个分数
scores[j] = scores[j+1];
}
double averageScore = calculateAverage(scores); // 计算平均成绩
System.out.printf("选手去掉最高分 %d 和最低分 %d 后的平均成绩是 %.2f 分.", highestScore, lowestScore, averageScore);
scanner.close();
}
// 私有静态方法计算平均值
private static double calculateAverage(int[] scores) {
double sum = 0;
for (int score : scores) {
sum += score;
}
return sum / scores.length;
}
}
```
阅读全文