c语言歌手大赛n个评委打分在一行分别输出得分,最低分,最高分。 两个数中间用一个空格分开。 得分四舍五入保留整数部分,最低分和最高分保留一位小数。
时间: 2024-04-30 09:18:02 浏览: 12
下面是一份可能的 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语言程序,所有评委未参赛选手打分,选手最后得分要去掉一个最高分,去掉一个最低分
。下面是一个用循环设计的C语言程序,用于计算选手的最终得分:
```
#include <stdio.h>
int main()
{
int i, n;
float score[100], sum = 0, max = 0, min = 999;
printf("请输入评委人数: ");
scanf("%d", &n);
// 输入所有评委打分
for (i = 0; i < n; i++) {
printf("请输入第%d个评委的分数: ", i + 1);
scanf("%f", &score[i]);
sum += score[i];
// 记录最高分和最低分
if (score[i] > max) {
max = score[i];
}
if (score[i] < min) {
min = score[i];
}
}
// 去掉最高分和最低分
sum -= max + min;
// 输出选手的最终得分
printf("选手得分为: %.2f\n", sum / (n - 2));
return 0;
}
```
该程序将首先要求用户输入评委的数量,然后用一个循环来输入每个评委的打分,并计算评委打分的总和。在输入的过程中,程序会记录最高分和最低分。最后,程序将去掉最高分和最低分,计算出选手的最终得分,并将其输出。
c语言有n个评委打分去掉最高和最低分求平均值
下面是一个简单的 C 语言代码实现:
```
#include <stdio.h>
#define MAX_JUDGE_NUM 100
int main() {
int n;
int scores[MAX_JUDGE_NUM];
int i, sum, max, min;
printf("请输入评委人数n:");
scanf("%d", &n);
printf("请依次输入%d个评委的打分:", n);
for (i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
max = scores[0];
min = scores[0];
sum = scores[0];
for (i = 1; i < n; i++) {
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
sum += scores[i];
}
printf("去掉最高分%d和最低分%d后,平均分是%.2f\n", max, min, (float)(sum-max-min)/(n-2));
return 0;
}
```
代码中使用了一个数组 `scores` 来存储评委的打分,使用变量 `max` 和 `min` 来分别计算最高分和最低分,使用变量 `sum` 来计算总分。最终利用 `(float)(sum-max-min)/(n-2)` 来计算去掉最高分和最低分后的平均分。