青年歌手参加歌曲大奖赛,有10个评委进行打分,将评分按降序排列。试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。用c语言写
时间: 2024-09-26 19:04:55 浏览: 56
在 C 语言中,你可以使用数组来存储评委的打分,并通过两个变量分别记录最高分和最低分,然后遍历数组计算去掉这两个极端值后的平均分。下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int scores[10]; // 假设10位评委的打分已经存在这个数组中
int n = sizeof(scores) / sizeof(scores[0]); // 获取评委人数
// 初始化最高分和最低分为第一个和最后一个分数
int max_score = scores[0];
int min_score = scores[0];
// 找到最高分和最低分
for (int i = 1; i < n; i++) {
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
}
// 计算有效得分总和并除以剩余评委数(去掉一个最高分和一个最低分)
int sum_valid_scores = 0;
for (int i = 0; i < n && i != 0 && i != n - 1; i++) { // 避免访问超出范围的元素
sum_valid_scores += scores[i];
}
double average_score = (double)sum_valid_scores / (n - 2); // 取小数点后两位表示分数
printf("去掉最高分和最低分后的平均得分为: %.2f\n", average_score);
return 0;
}
```
这段代码首先找到最高分和最低分,然后只考虑中间的有效得分计算平均分。注意这里假设了评委的打分已经存在于数组 `scores` 中。
阅读全文