JAVA奥运会跳水比赛通常有7名裁判,打分的方式为去掉一个最高分,去掉一个最低分,剩余5个成绩求得平均值,该平均值乘以3再乘以难度系数为最终成绩,请编程实现7名裁判单次跳水打分的输入,难度系数输入(难度系数通常在2~4之间),并输出有效成绩排序以及最终得分。
时间: 2024-10-10 17:09:21 浏览: 57
java1.6源码-A2Diving:在跳水运动中,七名裁判会给0到10之间的一个分数,其中每个分数可能是一个浮点值。最高和最低分数被淘汰,其
在Java中,我们可以使用ArrayList来存储7名裁判的分数,并通过Collections.sort()函数对分数进行排序。然后计算去掉最高分和最低分后的平均分,并根据难度系数调整最终得分。下面是一个简单的示例程序:
```java
import java.util.ArrayList;
import java.util.Collections;
public class DivingScore {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<>();
double difficultyCoefficient = getDifficultyCoefficient();
// 输入7名裁判的分数
for (int i = 0; i < 7; i++) {
int score = getUserInput("请输入第" + (i+1) + "位裁判的分数:");
scores.add(score);
}
// 排序并计算有效成绩的平均分
Collections.sort(scores); // 先升序排列
double effectiveAverage = calculateEffectiveAverage(scores.subList(1, 5)); // 去掉最高分和最低分
// 计算最终得分
double finalScore = effectiveAverage * difficultyCoefficient * 3;
// 输出有效成绩排序及最终得分
System.out.println("有效成绩排序:");
for (int i = 0; i < 5; i++) {
System.out.println((i+1) + ". " + scores.get(i));
}
System.out.println("最终得分:" + finalScore);
}
private static double getDifficultyCoefficient() {
Scanner scanner = new Scanner(System.in);
return scanner.nextDouble(); // 提示用户输入难度系数,范围2到4之间
}
private static int getUserInput(String prompt) {
Scanner scanner = new Scanner(System.in);
return scanner.nextInt(); // 用户输入整数分数
}
private static double calculateEffectiveAverage(ArrayList<Integer> subScores) {
if (subScores.size() == 0) return 0;
double sum = 0;
for (int score : subScores) {
sum += score;
}
return sum / subScores.size();
}
}
```
运行此程序时,会提示用户分别输入7名裁判的分数和难度系数。注意,这个示例假设用户输入的是有效的整数分数。
阅读全文