用c语言实现唱歌比赛时有7位评委参与打分,每位评委的分数都是[0,100]之间的整数,评分规则是去掉一个最高分,去掉一个最低分,其余5位评委的总分相加除以5即为最后得分。如果有多个相同的最高分或者最低分,只需要去掉一个。
时间: 2024-03-17 07:41:15 浏览: 149
比赛评委亮分计算表 去掉最高分和 最低分
好的,这是一个有趣的问题,实现起来也比较有挑战性。我会给你一些思路,帮助你用C语言实现这个问题。
首先,我们需要定义评分的数据类型和变量。评分的范围是[0,100],所以可以使用整数类型int来表示评分。评委有7个,所以可以使用数组来存储评委的分数:
```c
int scores[7];
```
接着,我们需要读入每位评委的分数。可以使用循环语句来读入分数:
```c
for (int i = 0; i < 7; i++) {
scanf("%d", &scores[i]);
}
```
接下来,我们需要找出最高分和最低分的下标。可以定义两个变量来保存最高分和最低分的下标,然后遍历数组,找出最高分和最低分的下标:
```c
int max_index = 0;
int min_index = 0;
for (int i = 1; i < 7; i++) {
if (scores[i] > scores[max_index]) {
max_index = i;
}
if (scores[i] < scores[min_index]) {
min_index = i;
}
}
```
找出最高分和最低分后,我们需要去掉它们,然后计算剩下5个分数的总和:
```c
int sum = 0;
for (int i = 0; i < 7; i++) {
if (i != max_index && i != min_index) {
sum += scores[i];
}
}
```
最后,我们需要计算最后得分。根据题目描述,最后得分是剩下5个分数的总和除以5。可以直接计算得分并输出结果:
```c
int final_score = sum / 5;
printf("Final score: %d\n", final_score);
```
这样,我们就完成了用C语言实现唱歌比赛评分的问题。完整代码如下:
```c
#include <stdio.h>
int main() {
int scores[7];
for (int i = 0; i < 7; i++) {
scanf("%d", &scores[i]);
}
int max_index = 0;
int min_index = 0;
for (int i = 1; i < 7; i++) {
if (scores[i] > scores[max_index]) {
max_index = i;
}
if (scores[i] < scores[min_index]) {
min_index = i;
}
}
int sum = 0;
for (int i = 0; i < 7; i++) {
if (i != max_index && i != min_index) {
sum += scores[i];
}
}
int final_score = sum / 5;
printf("Final score: %d\n", final_score);
return 0;
}
```
阅读全文