C++请设计一个评分统计程序,共有8位评委打分(满分为10分),统计时,去掉一个最高分和一个最低分,其余6个分数的平均分即为最后得分,显示最后得分,显示精度为一位整数、两位小数.
时间: 2024-05-01 14:20:25 浏览: 288
下面是一个简单的评分统计程序:
```c
#include <stdio.h>
#define JUDGE_NUM 8 // 评委人数
#define MAX_SCORE 10 // 满分
int main() {
int scores[JUDGE_NUM]; // 评委打分
int min_idx, max_idx; // 最低分和最高分的下标
int sum = 0; // 所有分数的和
// 输入评委打分
for (int i = 0; i < JUDGE_NUM; i++) {
printf("请输入第%d位评委的分数:", i + 1);
scanf("%d", &scores[i]);
// 判断分数是否合法
if (scores[i] < 0 || scores[i] > MAX_SCORE) {
printf("分数不合法,请重新输入!\n");
i--;
}
}
// 找出最低分和最高分
min_idx = max_idx = 0;
for (int i = 1; i < JUDGE_NUM; i++) {
if (scores[i] < scores[min_idx]) {
min_idx = i;
}
if (scores[i] > scores[max_idx]) {
max_idx = i;
}
}
// 求出除去最低分和最高分之后的总分
for (int i = 0; i < JUDGE_NUM; i++) {
if (i != min_idx && i != max_idx) {
sum += scores[i];
}
}
// 计算平均分并输出
double avg = (double)sum / 6;
printf("最终得分为:%.2f\n", avg);
return 0;
}
```
在程序中,我们定义了一个 `scores` 数组来存储每个评委的打分,然后通过循环输入每个评委的打分,并判断分数是否合法。接着,我们通过遍历数组,找出最低分和最高分的下标,并计算出除去最低分和最高分之后的总分。最后,我们通过这个总分计算平均分并输出即可。
阅读全文