HDU2014
Problem Description
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。
Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
Sample Input
3 99 98 97
4 100 99 98 97
Sample Output
98.00
98.50
#include <stdio.h>
int main() {
int n;
int x,y,z;
int a = 0;
int b = 0;
int max,min;
int list[100];
double sum = 0;
while(scanf("%d",&n) != EOF){
for(x = 0; x < n; x++){
scanf("%d",&list[x]);
sum = sum + list[x];
}
for(y = 1; y < n; y++){
if(list[y] > list[a]){
a = y; //下标交换,a一直为最大的数组的值的下标
}
}
max = list[a];
for(z = 1; z < n; z++){
if(list[z] < list[b]){
b = z; //下标交换,b一直为最小的数组的值的下标
}
}
min = list[b];
sum = sum - max - min; //减去最大最小分数
printf("%.2lf\n",sum/(n-2));
sum = 0; //初始化
max = 0;
min = 0;
a = 0;
b = 0;
}
return -1;
}