4. 有一青年歌手大奖赛,试编写一个评分系统,具体实现方法为:编写一个 对口个数据从大到小的排序函数,再编写一个计算最后得分的函数,计算方法是去除一个最高分,去除一个最低分,其余的平均分为参赛选手的最后得分。并在主两数中调用它们对有口个评委评分,m 个选手参賽的最后得分,从大到小排序 输出。 用c语言
时间: 2024-03-15 19:44:47 浏览: 213
职业教育水平错配对俄罗斯应届大学毕业生收入的影响-研究论文
好的,以下是一个用 C 语言实现的评分系统:
```c
#include <stdio.h>
// 对分数从大到小排序
void sort_scores(float scores[], int n) {
float temp;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (scores[i] < scores[j]) {
temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
}
// 计算最终得分
float calculate_final_score(float scores[], int n) {
float max_score = scores[0];
float min_score = scores[0];
float sum_score = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
sum_score += scores[i];
}
float final_score = (sum_score - max_score - min_score) / (n - 2);
return final_score;
}
int main() {
int m, n;
float scores[100];
printf("请输入评委个数:");
scanf("%d", &m);
printf("请输入参赛选手个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个选手的成绩:\n", i + 1);
float temp_scores[100];
for (int j = 0; j < m; j++) {
printf("请输入第%d个评委的打分:", j + 1);
scanf("%f", &temp_scores[j]);
}
float final_score = calculate_final_score(temp_scores, m);
scores[i] = final_score;
}
sort_scores(scores, n);
printf("参赛选手的最终得分从大到小排序如下:\n");
for (int i = 0; i < n; i++) {
printf("%.2f\n", scores[i]);
}
return 0;
}
```
这个评分系统的具体实现方法与 Python 版本基本相同。在计算最终得分的函数中,我们先找出分数中的最高分和最低分,然后将除去这两个分数后的分数求平均值作为最终得分。在主函数中,我们输入评委个数和参赛选手个数,依次输入每个选手每个评委的成绩,计算出每个选手的最终得分,将所有选手的最终得分从大到小排序输出。
阅读全文