C语言 在选秀节目中有10个评委为参赛选手打分,分数为1到100分,选手最后得分为去掉一个最高分去掉和一个最低分后其余8个分数的平均分,编写程序,输入10个数,输出选手的最后得分
时间: 2024-01-07 12:03:54 浏览: 148
好的,根据你的要求,我会为你解答这道题目。
下面是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int score[10];
int sum = 0, max = 0, min = 100;
for (int i = 0; i < 10; i++) {
scanf("%d", &score[i]);
if (score[i] > max) max = score[i];
if (score[i] < min) min = score[i];
sum += score[i];
}
double avg = (sum - max - min) / 8.0;
printf("选手的最终得分为:%.2lf", avg);
return 0;
}
```
程序的思路是:首先定义一个长度为 10 的数组 score 存储 10 个评委的得分,同时定义变量 sum 记录总分、变量 max 记录最高分、变量 min 记录最低分。然后使用 for 循环遍历数组,输入每个评委的得分,同时更新 max、min 和 sum。最后根据公式计算选手的最终得分并输出。
注意,程序中使用了浮点数除法,因此需要将分子或分母中的一个数强制转换为浮点数(这里我将分子转换为了浮点数),否则计算结果会被截断,导致错误。
希望我的回答能够帮助到你!
相关问题
用C语言在选秀节目中有10个评委为参赛选手打分,分数为1到100分,选手最后的得分为去掉一个最高分和去掉一个最低分后其余8个分数的平均分,编写程序,输入10个分数,输出选手的最后得分。
下面是一个用C语言编写的解决方案,可以实现你的需求:
```c
#include <stdio.h>
#define NUM 10 // 参赛选手数
int main() {
int scores[NUM]; // 存放10个评委的分数
int max = 0, min = 100; // 最高分和最低分的初始值
int sum = 0;
// 输入10个分数
printf("请输入10个分数:");
for (int i = 0; i < NUM; i++) {
scanf("%d", &scores[i]);
sum += scores[i];
// 更新最高分和最低分
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 计算去掉一个最高分和一个最低分后的平均分
double avg_score = (sum - max - min) * 1.0 / (NUM - 2);
printf("选手的最终得分为:%.2lf\n", avg_score);
return 0;
}
```
程序中使用了一个宏定义`NUM`来表示参赛选手数,方便修改。首先输入10个分数,并且在输入过程中计算总分、最高分和最低分。然后,去掉一个最高分和一个最低分后,计算剩余8个分数的平均分,最后输出选手的最终得分。注意,为了避免整数除法的问题,计算平均分时需要将分子或分母转换为浮点数。
在选秀节目中有10个评委为参赛选手打分,分数为1到100分,选手最后的得分为去掉一个最高分和去掉一个最低分后其余8个分数的平均分,编写程序,输入10个分数,输出选手的最后得分。c语言
在C语言中,你可以使用数组来存储评委的分数,并通过循环结构计算平均分。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int scores[10]; // 存储10个评委分数的数组
float sum = 0; // 初始化总和为0
int i;
printf("请输入10个评委的分数(范围1-100):\n");
for (i = 0; i < 10; i++) {
scanf("%d", &scores[i]);
sum += scores[i]; // 累加每个分数
}
// 排序并去掉最高和最低分
qsort(scores, 10, sizeof(int), compare); // 使用快速排序或其他排序函数
scores[0] = scores[9] = 0; // 最高分设为0,最低分也设为0
// 计算剩余8个分数的平均分
float average = (sum - scores[0] - scores[9]) / 8.0;
printf("选手的最终得分是: %.2f\n", average);
return 0;
}
// 比较函数用于排序
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
```
在这个程序中,用户首先输入10个分数,然后对数组进行排序,去掉最高分和最低分,再计算剩下的8个分数的平均值。注意,这里假设了快速排序的`compare`函数,实际编码时需要提供具体的比较函数实现。
阅读全文