Description
运动员跳水时,有n个评委打分,假设为10分制,有两位小数。如果去掉最高分和最低分,该运动员的得分是多少?
Input
有多组测试数据。第一行是整数T,表示测试数据的组数。每一组测试数据只有一行,分别为整数n和n个各评委的打分,每个数后有一个空格。该行没有其它多余的符号。2<n<=100。
Output
对应每组输入,输出该运动员的得分,保留2位小数。该行不能有其它多余的符号。
Sample Input
1
8 10.00 9.82 7.87 2.66 3.36 7.43 9.02 6.14
Sample Output
7.27
解法:
1 #include <stdio.h> 2 #include <math.h> 3 int i,j,t,n[1000]; 4 float a[1000][1000],min[1000],max[1000],avg[1000],sum[1000]; 5 int main() 6 { 7 scanf("%d",&t); 8 for (i=0;i<t;i++) 9 { 10 scanf("%d",&n[i]); 11 for (j=0;j<n[i];j++) scanf("%f",&a[i][j]); 12 } 13 for (i=0;i<t;i++) 14 { 15 max[i]=0; 16 for (j=0;j<n[i];j++) 17 { 18 if (a[i][j]>max[i]) max[i]=a[i][j]; 19 } 20 min[i]=max[i]; 21 for (j=0;j<n[i];j++) 22 { 23 if (a[i][j]<min[i]) min[i]=a[i][j]; 24 } 25 26 sum[i]=0; 27 for (j=0;j<n[i];j++) sum[i]=sum[i]+a[i][j]; 28 avg[i]=(sum[i]-max[i]-min[i])/(n[i]-2); 29 printf("%4.2f\n",avg[i]); 30 } 31 }