c语言 十个评委打分,去掉一个最高分一个最低分,剩下8个取平均值
时间: 2024-12-16 15:21:49 浏览: 37
在C语言中,如果你想计算十个评委打分后的平均分,但同时去除最高分和最低分,可以先将所有分数存入数组,然后对剩余的八个分数求平均。下面是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h> // 用于动态内存分配
#define NUM_JUDGES 10
#define MAX_SCORES 8
int main() {
int scores[NUM_JUDGES];
int sum[MAX_SCORES] = {0}; // 初始化一个长度为8的临时数组用于累计有效得分
int count = 0;
// 获取所有评委的分数并去除最高和最低分
for (int i = 0; i < NUM_JUDGES; i++) {
printf("请输入第 %d 位评委的评分:", i + 1);
scanf("%d", &scores[i]);
// 将有效分数放入临时数组
if (count < MAX_SCORES - 1 && scores[i] > scores[count]) {
sum[count] = scores[i];
count++;
}
}
// 如果收集到的分数少于8个,则说明没有足够的数据去除最高和最低分,直接返回总分
if (count < MAX_SCORES) {
printf("只收集到了%d个有效分数,无法计算去两端分数后的平均值。\n", count);
return 0;
}
// 计算并打印平均分
float average = (float)(sum[0] + sum[1] + ... + sum[MAX_SCORES - 1]) / MAX_SCORES;
printf("剩下的8个评委的平均分为: %.2f 分\n", average);
return 0;
}
阅读全文