c语言学校进行歌唱比赛。每位选手演唱完毕后,由十位评委打分(分数为整数,满分100分)。 评分规则是,去掉一个最高分,去掉一个最低分,计算其他八位评委的平均分。 输入格式: 在一行中,输入十位评委给出的分数,空格隔开。 输出格式: 去掉一个最高分,去掉一个最低分,计算其他八位评委的平均分。结果保留一位小数。
时间: 2024-02-28 22:53:09 浏览: 119
以下是本题的 C 代码实现:
```c
#include <stdio.h>
int main() {
int scores[10], i, max, min;
double sum = 0.0;
// 输入评委给出的分数
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
}
// 找出最高分和最低分
max = min = scores[0];
for (i = 1; i < 10; i++) {
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 去掉一个最高分和一个最低分
for (i = 0; i < 10; i++) {
if (scores[i] != max && scores[i] != min) {
sum += scores[i];
}
}
// 计算其他八位评委的平均分
printf("%.1f", sum / 8.0);
return 0;
}
```
解释一下代码的思路:
首先,我们定义一个整型数组 `scores` 存储评委给出的分数,以及一个变量 `i` 作为循环计数器,以及一个变量 `max` 和 `min` 分别表示最高分和最低分,以及一个双精度浮点数变量 `sum` 作为分数的总和。
接下来,我们使用 `for` 循环输入评委给出的分数,使用 `scanf()` 函数读入整数。
然后,我们使用 `for` 循环找出最高分和最低分,可以使用 `if` 语句和比较运算符实现。
接下来,我们使用 `for` 循环遍历分数数组,去掉一个最高分和一个最低分,计算其他八位评委的分数总和。
最后,我们计算其他八位评委的平均分,即将分数总和除以8,并使用 `printf()` 函数输出结果,保留一位小数(使用字符串格式化语法 `%.1f`)。
阅读全文