在c语言中校园歌手大赛共有10位评委对每一位参赛选手进行评分,评分规则是:从 10位评委的评分中,除去一个最高分和一个最低分,剩余的分数取平均值,作 为选手最后的得分。请编写一个程序,输入某选手的10个分数(也可以生成随 机数代替输入,分值在180,1001之间〉,输出其最后的得分(结果保留两位小 数)。
时间: 2024-03-07 12:49:19 浏览: 135
C 语言 歌手评分系统
好的,这是一个简单的题目,可以使用以下的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10 // 评委数量
double get_score(double score[]) {
double max_score = 0.0, min_score = 1001.0, sum_score = 0.0;
// 找出最高分和最低分
for (int i = 0; i < N; i++) {
if (score[i] > max_score) {
max_score = score[i];
}
if (score[i] < min_score) {
min_score = score[i];
}
}
// 计算总分
for (int i = 0; i < N; i++) {
if (score[i] != max_score && score[i] != min_score) {
sum_score += score[i];
}
}
// 计算平均分
double avg_score = sum_score / (N - 2);
return avg_score;
}
int main() {
double score[N];
// 生成随机分数
srand((unsigned int) time(NULL));
for (int i = 0; i < N; i++) {
score[i] = rand() % 821 + 180; // 分数在180到1000之间
}
// 输出选手的分数
printf("选手的分数为:");
for (int i = 0; i < N; i++) {
printf("%g ", score[i]);
}
printf("\n");
// 计算选手的最终得分
double final_score = get_score(score);
// 输出选手的最终得分
printf("选手的最终得分为:%.2f\n", final_score);
return 0;
}
```
在上面的代码中,我们先定义了一个 `get_score` 函数来计算选手的最终得分。在 `main` 函数中,我们先生成随机分数,然后调用 `get_score` 函数计算选手的最终得分,并将结果输出。其中,我们使用 `srand` 函数来设置随机数生成器的种子,以保证每次运行程序生成的随机数都不同。
阅读全文