青年歌手参加歌曲大奖赛,设有11个评委对他演唱后进行评分,记分方法是:去掉一个最高分和一个最低分后再求出剩下的评委给出的分数的平均分作为歌手的得分,试编程求他的最后得分。.用 c 编程
时间: 2024-05-03 11:16:22 浏览: 75
好的,根据您的要求,我将为您编写一个 C 语言程序来计算青年歌手的最终得分。以下是程序代码:
```c
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int scores[11];
int sum = 0, min = 101, max = -1;
// 输入11个评分
printf("请输入11个评分:\n");
for (int i = 0; i < 11; i++) {
scanf("%d", &scores[i]);
if (scores[i] < min) {
min = scores[i];
}
if (scores[i] > max) {
max = scores[i];
}
sum += scores[i];
}
// 去掉一个最高分和一个最低分
sum = sum - min - max;
// 按从小到大排序
qsort(scores, 11, sizeof(int), cmp);
// 求平均分
double avg = sum / 9.0;
printf("歌手的最终得分为:%.2lf\n", avg);
return 0;
}
```
程序的运行流程如下:
1. 首先定义一个数组 `scores` 来存储11个评分。
2. 通过循环输入11个评分,并在输入过程中记录下最高分和最低分,并计算出总分。
3. 去掉一个最高分和一个最低分,将剩余的分数求和。
4. 将所有评分按从小到大排序。
5. 计算剩余分数的平均分。
6. 输出最终得分。
请注意,程序中使用了一个 `cmp` 函数来帮助排序,这个函数会将两个整数按从小到大排序。另外,程序中的结果保留了两位小数。
希望这个程序能够满足您的需求,如有任何问题或建议,欢迎随时联系我。
阅读全文