编写C语言程序,在歌手大奖赛中,输入10名评委为某选手的打分成绩,去掉一个最高分,去掉一个最低分,求该选手最后得分。
时间: 2023-01-12 16:13:06 浏览: 237
下面是一个示例程序,它接受 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;
}
```
在这个程序中,我们使用了一个循环来读入每个评分,并更新最高分和最低分。然后,我们去掉最高分和最低分后计算最终得分。
希望这个程序能帮助你理解如何解决这个问题。
相关问题
c语言:在歌手大奖赛中有10个评委为参赛选手打分,分数在1至100分之间。选手最后得分为,去掉一个最高分和一个最低分后其余8个分数的平均值,在主函数中输入所有评委打分,输出选手的最后得分 输入提示:"please input the scores of thia singer:n” 输入格式:“” 输出格式提示:“the resultis:Wd\n 程序运行实例1、 please input the scores ofthis singer: 10 987654321 the result ig: 5 1 格式化代码 >运行 2.10)绝一个路热
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
#define NUM_JUDGES 10 // 评委数量
#define NUM_SCORES (NUM_JUDGES - 2) // 有效分数数量
int main() {
int scores[NUM_JUDGES]; // 存储每个评委的分数
int sum = 0;
int max_score = 0, min_score = 100;
// 输入每个评委的分数
printf("please input the scores of this singer:\n");
for (int i = 0; i < NUM_JUDGES; i++) {
scanf("%d", &scores[i]);
// 计算最高分和最低分
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
}
// 计算有效分数之和
for (int i = 0; i < NUM_JUDGES; i++) {
if (scores[i] != max_score && scores[i] != min_score) {
sum += scores[i];
}
}
// 计算最终得分
double final_score = (double)sum / NUM_SCORES;
// 输出结果
printf("the result is: %.2f\n", final_score);
return 0;
}
```
该程序中,我们首先定义了评委数量和有效分数数量的常量。然后定义了一个数组 `scores` 用于存储每个评委的分数。接着,在输入每个评委的分数的过程中,我们顺便计算了最高分和最低分。接着,我们计算了去掉最高分和最低分后剩余分数的和,并据此计算出最终得分。最后,我们输出了最终得分。
在实际运行该程序时,您可以按照以下格式输入评委的分数:
```
please input the scores of this singer:
10 20 30 40 50 60 70 80 90 100
```
程序将输出:
```
the result is: 55.00
```
青年歌手参加歌曲大奖赛,有 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元素!” 望您开心每一天,再见!
阅读全文