描述 学校举办歌手大赛,每个选季由n名评委进行打 分,然后在所有评分中去掉一个最高分和一个 最低分,剩下的n-2个评分的平均值,即为该选手的最终得分。 编写程序实现:输入第一行指定n的值,从第二 行开始每行输入一个评委的打分(共n行,满分 10分),按照上述计算选手的最终得分,保留一位小数输出。用c++
时间: 2023-06-17 07:02:50 浏览: 47
以下是实现该程序的代码:
```c++
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
double scores[n];
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
sort(scores, scores + n);
double sum = 0;
for (int i = 1; i < n - 1; i++) {
sum += scores[i];
}
double avg_score = sum / (n - 2);
cout << fixed << setprecision(1) << avg_score << endl;
return 0;
}
```
程序首先读取评委数量n和每个评委的打分,将这些分数存储在数组中,并使用sort函数对数组进行排序。接下来,程序计算所有分数的总和,但排除最高分和最低分,最后除以n-2,得出选手的最终得分。最后,程序使用fixed和setprecision函数保留一位小数输出选手的最终得分。
相关问题
c语言中在歌手大赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为
选手的最后得分是通过10个评委的打分来决定的,每个评委的打分范围是1到100分。为了计算选手的最终得分,我们可以使用一个简单的算法:首先,将所有评委的打分累加起来,然后再除以评委的数量。这样计算得到的结果就是选手的最终得分。
假设选手的得分分别为a1, a2, a3, ..., a10,那么选手的最终得分可以用以下公式表示:
最终得分 = (a1 + a2 + a3 + ... + a10) / 10
通过这个公式,选手的最终得分将会是一个介于1到100之间的数值,数值越高表示选手在比赛中的表现越好。
这个算法的优点是简单易懂,能够反映出评委们的整体评价。然而,由于评委之间可能存在主观因素的影响,有时候选手的实力和表现并不能完全体现在最终得分上。为了减少这种主观因素的影响,一些比赛可能还会采用其他的评分机制,比如去掉最高分和最低分后再计算平均值等。
总之,在C语言中,在歌手大赛中,通过对10个评委的打分来计算选手的最终得分是一种常见的评分算法。这种算法简单易懂,能够较好地反映出评委们的评价。
.校园歌手大赛共有10位评委对每一位参赛选手进行评分,评分规则是:从10位评委的评分中,除去一个最高分和一个最低分,剩余的分数取平均值,作为选手最后的得分。请编写一个程序,输入某选手的10个分数(也可以生成随机数代替输入,分值在[80,100]之间),输出其最后的得分(结果保留两位小数)。C语言
以下是使用C语言编写的程序,可以实现上述功能:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int scores[10]; // 存储10个评委的分数
int i, j, sum, max, min;
float avg;
// 生成10个随机数作为分数
for (i = 0; i < 10; i++) {
scores[i] = rand() % 21 + 80; // 生成80-100之间的随机数
printf("%d ", scores[i]);
}
printf("\n");
// 计算总分、最高分和最低分
sum = 0;
max = min = scores[0];
for (i = 0; i < 10; i++) {
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 去掉最高分和最低分,计算平均分
sum = sum - max - min;
avg = (float)sum / 8;
// 输出最后得分
printf("最终得分为:%.2f\n", avg);
return 0;
}
```
程序首先生成10个随机数,代表10位评委对该选手的评分。然后使用循环计算总分、最高分和最低分,再去掉最高分和最低分,计算剩余分数的平均值,最后输出最终得分。