在选秀节目中有10个评委为参赛选手打分,分数为1到100分,选手最后的得分为去掉一个最高分和去掉一个最低分后其余8个分数的平均分,编写程序,输入10个分数,输出选手的最后得分。c语言
时间: 2024-10-28 14:07:55 浏览: 45
华为机试题
在C语言中,你可以使用数组来存储评委的分数,并通过循环结构计算平均分。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int scores[10]; // 存储10个评委分数的数组
float sum = 0; // 初始化总和为0
int i;
printf("请输入10个评委的分数(范围1-100):\n");
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
sum += scores[i]; // 累加每个分数
}
// 排序并去掉最高和最低分
qsort(scores, 10, sizeof(int), compare); // 使用快速排序或其他排序函数
scores[0] = scores[9] = 0; // 最高分设为0,最低分也设为0
// 计算剩余8个分数的平均分
float average = (sum - scores[0] - scores[9]) / 8.0;
printf("选手的最终得分是: %.2f\n", average);
return 0;
}
// 比较函数用于排序
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
```
在这个程序中,用户首先输入10个分数,然后对数组进行排序,去掉最高分和最低分,再计算剩下的8个分数的平均值。注意,这里假设了快速排序的`compare`函数,实际编码时需要提供具体的比较函数实现。
阅读全文