http://acm.hdu.edu.cn/showproblem.php?pid=2014
题目大意
选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
Sample Input
3 99 98 97
Sample Output
98.00
98.50
方法与总结
- 求和的时候找到最大值和最小值
- 最后计算平均分的时候再减去最大最小值
代码
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
float sum=0;
int *p=new int[n];
for(int i=0;i<n;i++)
cin>>p[i];
int MAX=p[0],MIN=p[0];
for(int i=0;i<n;i++)
{
sum+=p[i];
if(p[i]>MAX)
MAX=p[i];
if(p[i]<MIN)
MIN=p[i];
}
printf("%.2f\n",(sum-MAX-MIN)/(n-2));
}
return 0;
}