UAO10370

Problem D: Above Average

It is said that 90% of frosh expect to be above average in theirclass. You are to provide a reality check.

The first line of standard input contains an integer C,the number of test cases. C data sets follow. Each data set begins withan integer, N, the number of people in the class (1 <= N <= 1000).N integers follow, separated by spaces or newlines,each giving the final grade (an integer between 0 and 100) of a student in the class. For each case you are to output a line givingthe percentage of students whosegrade is above average, rounded to 3 decimal places.

Sample Input

55 50 50 70 80 1007 100 95 90 80 70 60 503 70 90 803 70 90 819 100 99 98 97 96 95 94 93 91

Output for Sample Input

40.000%57.143%33.333%66.667%55.556%

题解:相当easy,就是计算数组在平均值之上的百分率,不过输出格式是个应该注意的问题!
#include<iostream>
#include <iomanip>
using namespace std;
int a[1000];
int main()
{
    int n,m,k,i,sum=0;
    cin>>n;
    while(n--)
    {
        double sum=0;
        int num=0;
        cin>>m;
        for(k=0;k<m;++k)
        {
            cin>>i;
            a[k]=i;
            sum+=i;
        }
        sum /=m;
        for(k=0;k<m;++k)
        {
            if(a[k]>sum)
                ++num;
        }
        cout.setf(ios::fixed);
        cout.setf(ios::showpoint);
        cout.precision(3);
        cout<<100*num/static_cast<double>(m)<<" %\n";
    }
}

 
posted @ 2010-10-26 22:49  hailong  阅读(165)  评论(0编辑  收藏  举报