#if 0
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
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
拓展:要求应用面向对象思想做题
#endif // 0
#include <iostream>
using namespace std;
#include<stdio.h>
class data
{
public:
data()
{
n=0;
result=0;
score=NULL;
}
int n;
~data()
{
n=0;
result=0;
if(score!=NULL)
{
delete [] score;
score=NULL;
}
}
double *score,result;
};
istream & operator>>(istream &op,data &a)
{
int i;
op>>a.n;
a.score=new double[100];
for(i=0;i<a.n;i++)
{
op>>a.score[i];
a.result+=a.score[i];
}
return op;
}
int main()
{
data a;
int i;
double t1,t2;
while(cin>>a)
{
t1=a.score[0];
t2=t1;
for(i=0;i<a.n;i++)
{
if(t1<a.score[i])
t1=a.score[i];
if(t2>a.score[i])
t2=a.score[i];
}
a.result-=(t1+t2);
a.result/=(a.n-2);
printf("%.2f\n",a.result);
a.~data();
}
return 0;
}