16.校园歌手大赛共有10位评委对每一位参赛选手进行评分,评分规则是:从10位评委的评分中,除去一个最高分和一个最低分,剩余的分数取平均值,作为选手最后的得分。请编写一个程序,输入某选手的10个分数(也可以生成随机数代替输入,分值在[80,100]之间),输出其最后的得分(结果保留两位小数)。
代码如下:
#include <stdio.h>
void bubble_sort(int arr[], int len)
{
int i, j, temp;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int score[10];
int sum = 0;
float avarage = 0.00;
printf("请输入10个分数\n");
for(int i=0;i<10;i++)
{
scanf("%d", &score[i]);
}
bubble_sort(score,10);
for(int i=1;i<9;i++)
{
sum += score[i];
}
avarage = (float)sum / 8;
printf("最后的得分:%.2f\n",avarage);
return 0;
}
利用冒泡排序算法,去除最高和最低分 。
运行结果:
输入80,96,100,96,85,98,96,81,93,86
请输入10个分数
80
96
100
96
85
98
96
81
93
86
最后的得分:91.38
本程序还有不足或可能有误,欢迎优化指正。
无限进步!