POJ 2350 Above Average

Description

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

Input

The first line of standard input contains an integer C, the number of test cases. C data sets follow. Each data set begins with an 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.

Output

For each case you are to output a line giving the percentage of students whose grade is above average, rounded to 3 decimal places.

Sample Input

5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91

Sample Output

40.000%
57.143%
33.333%
66.667%
55.556%



简单题 求分数超过平均分的学生的比例
来看一下WA和AC的代码
下面是WA的
 1 #include<stdio.h>
 2 int sco[1000+10];
 3 int main()
 4 {
 5     int T,n,i;
 6     double ave;
 7     double res;
 8     scanf("%d",&T);
 9     while(T--)
10     {
11         scanf("%d",&n);
12         ave=0.0;res=0.0;
13         for(i=0;i<n;i++)
14         {
15             scanf("%d",&sco[i]);
16             ave+=double(sco[i]);
17         }
18         ave/=double(n);
19         for( i=0;i<n;i++)
20         {
21             if(sco[i]>ave)res+=1.0;
22         }
23         res/=n;res*=100;
24         printf("%.3lf%%
",res);
25     }
26     return 0;
27 }

下面是AC的

 1 #include<stdio.h>
 2 int sco[1000+10];
 3 int main()
 4 {
 5     int T,n,i;
 6     float ave;
 7     float res;
 8     scanf("%d",&T);
 9     while(T--)
10     {
11         scanf("%d",&n);
12         ave=0.0;res=0.0;
13         for(i=0;i<n;i++)
14         {
15             scanf("%d",&sco[i]);
16             ave+=float(sco[i]);
17         }
18         ave/=float(n);
19         for( i=0;i<n;i++)
20         {
21             if(sco[i]>ave)res+=1.0;
22         }
23         res/=n;res*=100.0;
24         printf("%.3f%%
",res);
25     }
26     return 0;
27 }

就是把double改成了float......



原文地址:https://www.cnblogs.com/Annetree/p/5639061.html