8号选手参加校园歌手大赛,编程读入20个整数(70-100之间)并存入数组中做为20个评委的打分,请按题目要求编程实现输出样例要求的功能(最后得分为去掉最高分和最低分后的平均分)。用C语言
时间: 2024-10-21 12:16:07 浏览: 29
以下是使用C语言实现的要求功能的一个简单示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 需要头文件来获取随机数
// 定义评委打分数组大小
#define JUDGE_COUNT 20
int main() {
int scores[JUDGE_COUNT]; // 存储评委打分的数组
int i;
// 初始化随机数种子,以便于演示示例
srand(time(NULL));
// 遍历数组,生成随机分数(70-100)
for (i = 0; i < JUDGE_COUNT; ++i) {
scores[i] = rand() % (100 - 70 + 1) + 70;
}
// 对数组排序
qsort(scores, JUDGE_COUNT, sizeof(int), compare);
// 去掉最高分和最低分
scores[0] = scores[JUDGE_COUNT - 1] = 0;
// 计算剩余分数的平均值
double average = 0;
for (i = 1; i < JUDGE_COUNT - 1; ++i) {
average += scores[i];
}
average /= (JUDGE_COUNT - 2); // 只考虑18个有效分数
printf("8号选手去掉最高分和最低分后的平均得分是: %.2f\n", average);
return 0;
}
// 比较函数,用于qsort排序
int compare(const void *a, const void *b) {
return (*(const int*)a - *(const int*)b);
}
阅读全文