歌手大奖赛。在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。 输入样例: 80 89 85 73 93 91 88 78 86 82 输出样例: 84.88
时间: 2023-10-25 09:06:37 浏览: 330
好的,这是实现这个程序的Python代码:
```python
scores = input().split() # 读入10个评委的分数
scores = [int(s) for s in scores] # 转换为整数类型
scores.sort() # 对分数进行排序
scores = scores[1:-1] # 去掉最高分和最低分
avg_score = sum(scores) / len(scores) # 计算平均分数
print("%.2f" % avg_score) # 输出平均分数,保留两位小数
```
输入样例:
```
80 89 85 73 93 91 88 78 86 82
```
输出样例:
```
84.88
```
希望能帮到你!
相关问题
java编写十个评委_Java题 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分...
题目描述:
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为去掉一个最高分和一个最低分后剩余8个评委分数的平均值。请编写Java程序实现该计算。
解题思路:
1. 定义一个长度为10的int类型数组,用于存储10个评委的打分。
2. 利用for循环和Scanner类,依次从控制台输入10个评委的打分。
3. 利用Arrays类中的sort()方法,将数组进行升序排序。
4. 去掉数组的第一个元素(即最小值)和最后一个元素(即最大值)。
5. 利用for循环和累加器对剩余的8个分数进行求和。
6. 计算平均分并输出。
Java代码实现:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] scores = new int[10]; // 存储10个评委的打分
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.print("请输入第" + (i + 1) + "个评委的打分:");
scores[i] = sc.nextInt();
}
Arrays.sort(scores); // 对数组进行升序排序
int sum = 0;
for (int i = 1; i < 9; i++) { // 去掉最高分和最低分,对剩余的8个分数进行求和
sum += scores[i];
}
double avg = sum / 8.0; // 计算平均分
System.out.println("选手最终得分为:" + avg);
}
}
```
注意事项:
1. 需要导入java.util.Arrays和java.util.Scanner类。
2. 在计算平均分时,需要将分数之和除以8.0,而不是除以8。这是因为除数为整数时,Java会进行整除运算,导致结果精度丢失。
3. 为了简化代码,这里没有进行输入校验,实际开发中需要对用户输入进行验证,防止程序崩溃。
c语言10个选手10个评委,求教C语言题:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。...
这是一道经典的算法题,可以使用循环和数组来实现。具体思路如下:
1. 首先,定义一个二维数组 `score`,其中第一维表示选手编号,第二维表示评委编号,用来存储每个选手每个评委的得分;
2. 然后,使用循环嵌套遍历所有的选手和评委,接收用户输入每个评委给每个选手的得分,并将其存储到数组中;
3. 在输入完成后,遍历所有的选手,计算其总分和平均分,并输出结果。
以下是示例代码:
```c
#include <stdio.h>
int main() {
int score[10][10]; // 定义二维数组存储分数
int i, j, sum, avg;
// 接收用户输入每个评委给每个选手的得分
for (i = 0; i < 10; i++) { // 遍历所有选手
printf("请输入第%d个选手的分数:\n", i + 1);
for (j = 0; j < 10; j++) { // 遍历所有评委
printf("请输入第%d个评委的分数:", j + 1);
scanf("%d", &score[i][j]); // 存储分数
}
}
// 计算每个选手的总分和平均分,并输出结果
for (i = 0; i < 10; i++) { // 遍历所有选手
sum = 0;
for (j = 0; j < 10; j++) { // 遍历所有评委
sum += score[i][j]; // 累加分数
}
avg = sum / 10; // 计算平均分
printf("第%d个选手的总分为%d,平均分为%d。\n", i + 1, sum, avg);
}
return 0;
}
```
在这个示例代码中,使用了二维数组 `score` 来存储分数。首先使用两层循环遍历所有的选手和评委,接收用户输入得分并存储到数组中。然后再使用两层循环遍历所有的选手和评委,累加分数并计算平均分,最后输出结果。
阅读全文