HDU——2014 青年歌手大奖赛_评委会打分
2015-10-24 16:32
357 查看
青年歌手大奖赛_评委会打分
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 62031 Accepted Submission(s): 30904
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> #include<math.h> #include<string.h> #include<iostream> #include<algorithm> #include<string> #include<queue> #define M(i,n,m) for(int i = n;i < m;i ++) #define L(i,n,m) for(int i = n;i >= 0;i --) #define N(n,m) memset(n,m,sizeof(n)); const int MAX = 10010; using namespace std; int main() { int a[111]; int n; while(~scanf("%d",&n)) { double sum = 0.0; for(int i = 0; i < n; i ++) scanf("%d",&a[i]); for(int i = 0; i < n; i ++) for(int j = 0; j < n - i - 1; j ++) if(a[j] > a[j + 1]) { int t; t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(int i =1 ; i < n - 1; i ++) sum += a[i]; double t = sum / (n - 2); printf("%.2f\n",t); } return 0; }