c语言歌手大赛n个评委打分在一行分别输出得分,最低分,最高分。 两个数中间用一个空格分开。 得分四舍五入保留整数部分,最低分和最高分保留一位小数。
时间: 2024-04-30 17:18:02 浏览: 138
下面是一份可能的 C 语言代码,可以实现你所述的功能:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
double sum = 0, min = 1000000000, max = -1000000000; // 初始化最大值和最小值
for (int i = 0; i < n; i++) {
double score;
scanf("%lf", &score);
sum += score;
if (score < min) min = score;
if (score > max) max = score;
}
double avg = round(sum / n); // 四舍五入
printf("%.0lf %.1lf %.1lf\n", avg, min, max);
return 0;
}
```
这个程序首先读入评委的个数 `n`,然后用一个循环读入每个评委的得分,累加总分并更新最低分和最高分。最后计算平均分并四舍五入取整,输出结果。
需要注意的是,四舍五入需要用到 `round()` 函数,该函数需要在 `math.h` 头文件中声明。最低分和最高分需要保留一位小数,这可以通过在输出格式字符串中使用 `%.1lf` 实现。
相关问题
用C语言输入n个评委的打分,计算并输出参赛选手的最后得分。计算方法为去除一个最高分和去除一个最低分,其余的进行平均,得出参赛选手的最后得分
下面是C语言的代码实现:
```c
#include <stdio.h>
#define MAX_JUDGE_NUM 10 // 最多的评委人数
int main() {
int n; // 评委人数
int scores[MAX_JUDGE_NUM]; // 评委们的打分
int max_score = -1, min_score = 101; // 最高分和最低分
int sum_score = 0; // 所有评委的总分数
printf("请输入评委的人数(不超过%d个):", MAX_JUDGE_NUM);
scanf("%d", &n);
// 读入每个评委的打分
for (int i = 0; i < n; i++) {
printf("请输入第%d个评委的打分:", i + 1);
scanf("%d", &scores[i]);
// 更新最高分和最低分
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
sum_score += scores[i]; // 累加总分数
}
// 去掉一个最高分和一个最低分
sum_score -= max_score;
sum_score -= min_score;
// 计算最终得分并输出
double final_score = sum_score * 1.0 / (n - 2);
printf("参赛选手的最终得分为:%.2f\n", final_score);
return 0;
}
```
程序的核心思路是读入每个评委的打分,同时记录下最高分和最低分,累加总分数。然后去掉一个最高分和一个最低分,计算最终得分并输出。需要注意的是,最终得分要用 `double` 类型存储,否则可能会丢失精度。
、青年歌手大奖赛中,评委会给参赛选手打分(0~100分)。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分, 请编程输出某选手的得分。输入有两行。第1行是一个整数n (2<n<100),表示评委的人数。第2行是n个整数,分别表示n用C语言
在C语言中,你可以通过以下几个步骤编写一个程序来计算去掉最高分和最低分后的平均得分。这里我提供了一个简单的示例:
```c
#include <stdio.h>
int main() {
int n, i;
float sum = 0, max = 0, min = 999; // 初始化最大值和最小值为极大值和极小值
scanf("%d", &n); // 输入评委人数
// 读取每位评委的分数并更新最大值和最小值
for (i = 0; i < n; i++) {
int score;
scanf("%d", &score);
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
sum += score;
}
// 去掉最高分和最低分,然后计算剩余分数的平均值
sum -= max - min; // 因为最高分已经减过一次,所以再减去一次
float average = sum / (n - 2);
printf("选手的平均得分为: %.2f 分\n", average); // 输出保留两位小数的平均分
return 0;
}
```
在这个程序中,我们首先获取评委人数,然后循环读取每个评委的评分,并维护最大分和最小分。最后,我们从总分中减去最高分和最低分,除以剩余评委的数量,得到平均分。
阅读全文
相关推荐












