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 the number
of people in the class n (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 |
Sample output |
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 |
40.000% 57.143% 33.333% 66.667% 55.556% |
циклы
Анализ алгоритма
Для каждого теста вычисляем
средний арифметический бал студентов. Потом вычисляем, сколько студентов
получило бал выше среднего. Выводим процент студентов, чей бал выше среднего.
Реализация алгоритма
#include <stdio.h>
int tests, i, n, c;
int a[1000];
double average, res;
int main(void)
{
scanf("%d",&tests);
while(tests--)
{
scanf("%d",&n); average = 0;
for(i = 0; i < n; i++)
{
scanf("%d",&a[i]);
average += a[i];
}
average /= n; c =
0;
for(i = 0; i < n; i++)
if (a[i] > average) c++;
res = 100.0 * c /
n;
printf("%.3lf%%\n",res);
}
return 0;
}