java有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现用数组
时间: 2023-10-25 09:06:58 浏览: 166
实现该功能。
以下是Java代码实现:
```java
import java.util.Arrays;
public class ScoreCalculator {
public static void main(String[] args) {
int[] scores = {90, 80, 85, 95, 70, 75, 88, 92, 87, 83};
int sum = 0;
Arrays.sort(scores); // 将分数排序
for (int i = 1; i < 9; i++) {
sum += scores[i];
}
double average = sum / 8.0; // 计算平均分
System.out.println("选手得分为:" + average);
}
}
```
解释:
首先定义一个长度为10的数组 `scores` 来存储10个评委给选手的打分。
然后使用 `Arrays.sort()` 方法将数组中的分数从小到大排序。
接着使用一个循环,从第二个分数开始累加到第九个分数,即去掉一个最高分和一个最低分。
最后计算平均分,输出结果。注意要将分数总和除以8.0,而不是8,否则会得到整数结果。
相关问题
在唱歌比赛中有10个评委为参赛的选手打分分数为0~100分。选手最后得分为:去掉一个最高分和一个最低分后,其余八个分数的平均值。请编写一个程序实现。使用Java实现
在Java中,你可以创建一个简单的类来模拟这个评分过程。这里是一个简化的例子:
```java
import java.util.ArrayList;
import java.util.Collections;
public class SingingCompetition {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<>();
// 假设我们已经有了10个评委的得分
for (int i = 0; i < 10; i++) {
scores.add(i + 100); // 示例分数,实际比赛中应输入评委给出的具体分数
}
// 排序并移除最高分和最低分
Collections.sort(scores);
scores.remove(scores.size() - 1); // 移除最大值
scores.remove(0); // 移除最小值
// 计算并打印剩余8个分数的平均值
double averageScore = calculateAverage(scores);
System.out.println("选手的最终得分是: " + averageScore);
}
private static double calculateAverage(ArrayList<Integer> scoresList) {
int sum = 0;
for (int score : scoresList) {
sum += score;
}
return (double) sum / scoresList.size();
}
}
```
在这个程序中,首先创建了一个ArrayList来存储10个评委的分数,然后对分数列表进行排序。接着,通过`remove()`方法移除最高分和最低分,再计算剩下的8个分数的平均值。`calculateAverage()`函数用于计算平均值。
运行这个程序后,它将输出选手的最终得分。请注意,这只是一个基础示例,实际应用中需要根据实际情况输入评委的得分数据。如果你有具体的评委分数数据,可以直接替换`scores.add(i + 100)`这一行的内容。
竞赛评分 在某竞赛中,有10个评委为参赛的选手打分,分数为0~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序计算并打印输出选手最后得分。
在Java中,你可以使用ArrayList或List来存储评委的分数,然后使用Collections.sort()对分数进行排序,再根据题目要求去除最高分和最低分。以下是一个简单的示例程序:
```java
import java.util.ArrayList;
import java.util.Collections;
public class ContestScoreCalculator {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<>();
// 假设这里是你获取的10个评委分数,例如从用户输入或者数据库读取
scores.add(95);
scores.add(85);
scores.add(90);
scores.add(75);
scores.add(80);
scores.add(92);
scores.add(88);
scores.add(93);
scores.add(78);
scores.add(86);
// 对分数列表进行排序
Collections.sort(scores);
// 去掉最高分和最低分
if (scores.size() >= 2) {
scores.remove(scores.get(scores.size() - 1)); // 最高分
scores.remove(0); // 最低分
}
// 计算剩余分数的平均值
double averageScore = scores.stream().mapToInt(Integer::intValue).average().orElse(0.0);
// 打印结果
System.out.println("选手最后得分: " + averageScore);
}
}
```
在这个例子中,我们首先创建了一个ArrayList来存储分数,然后用Collections.sort()对其进行排序。接着,如果分数大于等于2(因为至少要有两个分数才能去最高分和最低分),我们就移除最高的和最低的分数。最后,使用Java 8的Stream API计算剩下的分数的平均值。
阅读全文