设有 10 名歌手(编号为 1-10)参加歌咏比赛,另有 6 名评委打分,每位歌手的得分从键 盘输入:先提示“Please input singer’s score: ”,再依次输入第 1 个歌手的 6 位评委打分 (10 分制,分数为整型,分数之间使用空格分隔),第 2 个歌手的 6 位评委打分…以此类 推。计算出每位歌手的最终得分(扣除一个最高分和一个最低分后的平均分,最终得分 保留 2 位小数),最后按最终得分由高到低的顺序输出每位歌手的编号及最终得分。要 求用结构体实现以上功能
时间: 2023-05-19 09:02:06 浏览: 85
以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define SINGERS_NUM 10
#define JUDGES_NUM 6
typedef struct {
int id;
double score;
} Singer;
int cmp(const void *a, const void *b) {
Singer *s1 = (Singer *)a;
Singer *s2 = (Singer *)b;
if (s1->score > s2->score) {
return -1;
} else if (s1->score < s2->score) {
return 1;
} else {
return 0;
}
}
int main() {
Singer singers[SINGERS_NUM];
int scores[SINGERS_NUM][JUDGES_NUM];
// 输入每位歌手的得分
for (int i = 0; i < SINGERS_NUM; i++) {
printf("Please input singer %d's score: ", i + 1);
for (int j = 0; j < JUDGES_NUM; j++) {
scanf("%d", &scores[i][j]);
}
}
// 计算每位歌手的最终得分
for (int i = 0; i < SINGERS_NUM; i++) {
int max_score = -1, min_score = 11;
double sum = 0;
for (int j = 0; j < JUDGES_NUM; j++) {
if (scores[i][j] > max_score) {
max_score = scores[i][j];
}
if (scores[i][j] < min_score) {
min_score = scores[i][j];
}
sum += scores[i][j];
}
sum -= max_score + min_score;
singers[i].id = i + 1;
singers[i].score = sum / (JUDGES_NUM - 2);
}
// 按最终得分由高到低排序并输出
qsort(singers, SINGERS_NUM, sizeof(Singer), cmp);
printf("Singer\tScore\n");
for (int i = 0; i < SINGERS_NUM; i++) {
printf("%d\t%.2f\n", singers[i].id, singers[i].score);
}
return 0;
}
```
这个程序实现了一个歌咏比赛的打分系统,输入每位歌手的得分后,计算出每位歌手的最终得分,并按最终得分由高到低排序输出每位歌手的编号及最终得分。程序使用了结构体来存储每位歌手的编号和最终得分,使用了快速排序算法来排序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)