Solution of 10370 - Above Average

Problem Description
source:https://uva.onlinejudge.org/external/103/10370.html

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 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%

Solution:
#include<stdio.h>
#define max 1000

int main()
{
    int c, n, value[max],i,count,total,j
    double avg, result;
    while(scanf("%d",&c)==1)
    {
        for(j=1;j<=c;j++)
        {

            total=0;
            scanf("%d",&n);
            for(i=1;i<=n;i++)
            {
                scanf("%d",&value[i]);
                total+=value[i];
            }
            avg=(double)total/(double)n;
            count=0;
            for(i=1;i<=n;i++)
            {
                if(value[i]>avg)
                    count++;
            }
            result=(double)(100*count)/(double)n;
            printf("%.3f%%\n",result); /* for print special character % use %%*/
        }
    }
    return 0;
}

No comments:

Post a Comment

Write your comment - Share Knowledge and Experience