用C语言解决这个问题张三参加校园歌手大赛,大赛有10个评委,计分规则为:去掉一个最高分去掉一个最低分后,取平均值。输入10个评委对张三的打分,计算平均分。
时间: 2023-08-08 07:14:00 浏览: 158
好的,下面是用C语言解决这个问题的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 10 // 评委人数
int compare(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
int scores[NUM_JUDGES];
int sum = 0;
int min_score, max_score;
// 获取评委打分
for (int i = 0; i < NUM_JUDGES; i++) {
printf("请输入第%d个评委的打分:", i+1);
scanf("%d", &scores[i]);
}
// 对打分排序
qsort(scores, NUM_JUDGES, sizeof(int), compare);
// 去掉一个最高分和一个最低分
min_score = scores[0];
max_score = scores[NUM_JUDGES-1];
for (int i = 1; i < NUM_JUDGES-1; i++) {
sum += scores[i];
}
// 计算平均分
float avg_score = (float)sum / (NUM_JUDGES-2);
printf("去掉一个最高分(%d)和一个最低分(%d)后,张三的平均得分为:%.2f分\n", max_score, min_score, avg_score);
return 0;
}
```
这个程序首先定义了评委人数和一个用于比较大小的函数,然后通过循环获取每个评委的打分。接着使用 `qsort` 函数对打分进行排序,然后去掉一个最高分和一个最低分,最后计算平均分并输出结果。
运行程序,输入每个评委的打分后,程序会输出去掉一个最高分和一个最低分后的平均得分。
阅读全文