hdu 2014 青年歌手大奖赛_评委会打分

http://acm.hdu.edu.cn/showproblem.php?pid=2014

题目大意

选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

Sample Input

3 99 98 97

4 100 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;
}
/* bottom:40px 距浏览器底部距离 right:40px 距浏览器右边距离 */