10370. Больше среднего

 

В классе учится n учеников. Известны их аттестационные оценки по 100 бальной шкале (от 0 до 100 включительно). Вычислить процент учеников, имеющих бал выше среднего.

 

Вход. Первая строка содержит количество тестов. Каждый тест располагается в отдельной строке. Первым числом каждого теста является количество учеников в классе n (1 £ n £ 1000). Далее следуют n чисел – аттестационные оценки учеников.

 

Выход. Для каждого теста вывести в отдельной строке процент учеников, имеющих бал выше среднего. Ответ округлять до 3 десятичных знаков.

 

Пример входа

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%

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Вычислим средний бал, поделив сумму балов на количество учеников. Далее вычислим количество учеников, чей бал выше среднего, а также процентную часть, которую они составляют от всех учеников в классе.

 

Пример

Для первого теста сумма балов равна 50 + 50 + 70 + 80 + 100 = 350, средний бал равен 350 / 5 = 70. Количество учеников, имеющих бал строго выше 70, равно 2 (это ученики, получившие 80 и 100 балов). В процентном соотношении 2 ученика от 5 составляют 2 * 100 / 5 = 40%.

 

Реализация алгоритма

Читаем количество учеников n и их оценки. Параллельно вычисляем сумму балов. Разделив сумму балов на количество учеников, получаем средний бал average.

 

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;

 

Подсчитываем количество учеников с, чей бал строго выше среднего. Вычисляем, сколько процентов составляют с учеников от n и выводим ответ.

 

  c = 0;

  for(i = 0; i < n; i++)

    if (a[i] > average) c++;

  res = 100.0 * c / n;

  printf("%.3lf%%\n",res);

}