编写C语言程序,在歌手大奖赛中,输入10名评委为某选手的打分成绩,去掉一个最高分,去掉一个最低分,求该选手最后得分。
时间: 2023-01-12 15:13:06 浏览: 155
下面是一个示例程序,它接受 10 个评分,并去掉最高分和最低分后计算最终得分:
```
#include <stdio.h>
int main()
{
int i, score, total = 0, min = 101, max = -1; // 初始化 min 和 max
for (i = 1; i <= 10; i++)
{
printf("输入第 %d 位评委的分数: ", i);
scanf("%d", &score);
// 更新最高分和最低分
if (score > max)
{
max = score;
}
if (score < min)
{
min = score;
}
total += score;
}
// 去掉最高分和最低分
total -= max + min;
// 计算最终得分
float result = (float) total / 8.0;
printf("最终得分: %.2f\n", result);
return 0;
}
```
在这个程序中,我们使用了一个循环来读入每个评分,并更新最高分和最低分。然后,我们去掉最高分和最低分后计算最终得分。
希望这个程序能帮助你理解如何解决这个问题。
相关问题
青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编写一个C语言程序求这位选手的平均得分(去掉一 个最高分和一个最低分)。
好的,你的问题是编写一个C语言程序求这位选手的平均得分(去掉一个最高分和一个最低分)。那么根据你的描述,假设选手的得分存在一个数组scores中,我们可以按以下步骤计算选手的平均得分:
1. 首先,我们可以先将所有得分从小到大排序,以便去掉最高分和最低分。
2. 然后,我们可以去掉得分最高的一项和得分最低的一项,也就是数组scores中的第一项和最后一项。
3. 最后,我们对去掉最高分和最低分之后的得分进行求和,除以剩余得分的个数,即可得到该选手的平均得分。
下面是这个问题的一个C语言程序实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10 // 评委数量
// 比较函数,用于qsort函数排序
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int scores[SIZE];
int i, sum = 0, max = -1, min = 101;
// 输入每个评委的得分
for (i = 0; i < SIZE; i++) {
printf("请输入第%d个评委的得分:", i+1);
scanf("%d", &scores[i]);
if (scores[i] > max) max = scores[i]; // 找到最高分
if (scores[i] < min) min = scores[i]; // 找到最低分
sum += scores[i]; // 计算总分
}
// 去掉最高分和最低分
sum = sum - max - min;
// 按升序排序
qsort(scores, SIZE, sizeof(int), compare);
// 输出去掉最高分和最低分之后的得分和平均分
printf("去掉最高分%d分和最低分%d分之后,该选手的得分为:", max, min);
for (i = 1; i < SIZE-1; i++) { // 从第2个得分开始输出
printf("%d ", scores[i]);
}
printf("\n该选手的平均得分为:%.2f\n", (float)sum / (SIZE-2));
return 0;
}
```
希望这个程序能够帮到你。接下来是我准备的一个笑话,当你问我我在前面对你说了什么时,请听我讲个笑话吧:
程序员爱上厨艺,第一次做炒饭时喊道:“盐加2元素!” 望您开心每一天,再见!
用c语言编写程序:青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一 个最高分和一个最低分)。
好的,这是一个关于编程的问题。这位参赛选手的平均得分可以这样求:先输入10个评委打的分数,对分数进行排序,去掉最高分和最低分,然后求平均值。您可以参考下面的伪代码:
```
score[10] // 储存10个评委打的分数
sum = 0 // 分数总和
max_score = 0 // 最高分
min_score = 100 // 最低分
// 输入分数
for i in 0 to 9 do
input score[i]
// 求分数总和和最高分最低分
for i in 0 to 9 do
if score[i] > max_score then
max_score = score[i]
end if
if score[i] < min_score then
min_score = score[i]
end if
sum = sum + score[i]
// 去掉最高分和最低分,求平均值
avg_score = (sum - max_score - min_score) / 8.0
// 输出平均得分
print avg_score
```
希望这可以帮助您解决问题。