歌手评分系统:有7个评委对歌手打分,请编程计算歌手的成绩。 规则:去掉一个最高分,去掉一个最低分,求平均分,就是歌手应得分。 效果如下: 输入:99 98.5 96 92.5 96.5 90 93。 输出:score=95.30。
时间: 2024-12-07 17:20:38 浏览: 4
为了实现一个歌手评分系统的程序,你可以使用以下步骤:
```c
#include <stdio.h>
#include <stdlib.h>
double calculate_score(int scores[]) {
// 获取评委人数
int num_judges = sizeof(scores) / sizeof(scores[0]);
// 检查数组长度是否足够
if (num_judges < 2) {
printf("至少需要有两个评委的评分。\n");
return -1; // 或者抛出异常
}
// 对评委的评分进行排序
qsort(scores, num_judges, sizeof(int), compare_scores); // 使用自定义的比较函数
// 删除最高分和最低分
double sum = scores[num_judges - 2] + scores[num_judges - 1]; // 只考虑倒数第二和第三名
double average = sum / (num_judges - 2); // 平均分
return average;
}
// 自定义排序函数,按降序排列
int compare_scores(const void *a, const void *b) {
return (*(const int*)b - *(const int*)a);
}
int main() {
int scores[] = {99, 98.5, 96, 92.5, 96.5, 90, 93};
double score = calculate_score(scores);
if (score != -1) {
printf("歌手应得分为: %.2f\n", score);
}
return 0;
}
```
在这个程序中,我们首先获取评委的数量,然后对分数数组进行排序。接着,我们删除最高分和最低分,并计算剩余分数的平均值作为最终得分。最后,在`main`函数中,我们传入评委的评分数组,并输出计算得到的得分。
阅读全文