C语言实现歌手评分系统:计算扣除最高最低分的平均得分
C语言实现歌手评分系统:计算扣除最高最低分的平均得分
本程序使用C语言实现一个歌手评分系统,根据6位评委的打分,计算出每位歌手扣除最高分和最低分后的平均得分,并按最终得分由高到低排序输出。
输入格式:
依次输入第1个歌手的6位评委打分(10分制,分数为整型,分数之间使用空格分隔),第2个歌手的6位评委打分...以此类推。
输出格式:
参照输出示例,按最终得分由高到低的顺序输出每位歌手的编号及最终得分(最终得分保留2位小数)。
输入样例:
10 9 8 7 6 5 9 9 9 9 9 9 8 8 8 8 8 8 7 7 7 7 7 7 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1
输出样例:
2 5.00 1 5.00 3 4.67 4 4.67 5 4.67 6 4.67 7 4.67 8 4.67 9 4.67 10 4.67
代码实现:
#include <stdio.h>
#include <stdlib.h>
int main() {
int scores[10][6], i, j, max, min, sum;
double finalScores[10];
// 输入评委打分
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];
sum = 0;
for (j = 0; j < 6; j++) {
if (scores[i][j] > max) {
max = scores[i][j];
}
if (scores[i][j] < min) {
min = scores[i][j];
}
sum += scores[i][j];
}
finalScores[i] = (double)(sum - max - min) / 4;
}
// 按最终得分排序输出
for (i = 0; i < 10; i++) {
for (j = i + 1; j < 10; j++) {
if (finalScores[i] < finalScores[j]) {
double temp = finalScores[i];
finalScores[i] = finalScores[j];
finalScores[j] = temp;
}
}
}
// 输出结果
for (i = 0; i < 10; i++) {
printf("%d %.2lf\n", i + 1, finalScores[i]);
}
return 0;
}
总结
本程序使用二维数组存储每个歌手的6位评委打分,通过循环遍历计算每个歌手的最终得分,并将结果存储在另一数组中。最后使用冒泡排序算法对最终得分进行排序,并输出结果。
原文地址: https://www.cveoy.top/t/topic/nH5n 著作权归作者所有。请勿转载和采集!