C语言实现歌手比赛得分排名:扣除最高最低分计算平均分
C语言实现歌手比赛得分排名:扣除最高最低分计算平均分
本程序使用C语言实现歌手比赛得分排名,输入10位歌手的6位评委打分,计算每位歌手扣除最高最低分后的平均得分,并按得分由高到低输出排名结果。
输入格式:
依次输入第1个歌手的6位评委打分(10分制,分数为整型,分数之间使用空格分隔),第2个歌手的6位评委打分...以此类推。
输出格式:
参照输出示例,按最终得分由高到低的顺序输出每位歌手的编号及最终得分(最终得分保留2位小数)。
输入样例:
8 9 8 8 9 9 9 10 10 9 9 10 7 6 7 8 6 8 8 8 9 9 8 9 9 9 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 8 8 7 7 8 8 7 8 8 8 7 7 10 10 10 10 10 10
输出样例:
6 10.00 5 10.00 2 9.50 4 9.00 1 8.50 7 9.00 10 10.00 3 7.00 9 7.50 8 7.50
代码实现:
#include <stdio.h>
#include <stdlib.h>
int main() {
int scores[10][6]; // 存储每个歌手的6个评分
double final_scores[10]; // 存储每个歌手的最终得分
int i, j, max, min;
// 输入每个歌手的6个评分
for (i = 0; i < 10; i++) {
for (j = 0; j < 6; j++) {
scanf("%d", &scores[i][j]);
}
}
// 计算每个歌手的最终得分
for (i = 0; i < 10; i++) {
max = scores[i][0]; // 初始化最大值为第一个评分
min = scores[i][0]; // 初始化最小值为第一个评分
for (j = 1; j < 6; j++) {
if (scores[i][j] > max) {
max = scores[i][j];
}
if (scores[i][j] < min) {
min = scores[i][j];
}
}
final_scores[i] = 0;
for (j = 0; j < 6; j++) {
if (scores[i][j] != max && scores[i][j] != min) {
final_scores[i] += scores[i][j];
}
}
final_scores[i] /= 4; // 计算平均分
}
// 按最终得分由高到低排序歌手
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (final_scores[i] < final_scores[j]) {
double temp = final_scores[i];
final_scores[i] = final_scores[j];
final_scores[j] = temp;
}
}
}
// 输出排名结果
for (i = 0; i < 10; i++) {
printf("%d %.2f\n", i + 1, final_scores[i]);
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nH5v 著作权归作者所有。请勿转载和采集!