Для кожного учня обчислимо середній бал — суму його річних оцінок, поділену на кількість предметів m_i. Учень може бути прийнятий до школи, якщо його середній бал не менший за прохідний бал .
Значення задається лише в останньому рядку вхідних даних, тому спочатку прочитаємо описи всіх учнів і для кожного з них збережемо прізвище, ім'я та середній бал. Потім прочитаємо і виведемо тих учнів, чий середній бал не менший за . Перебираючи учнів у порядку їх слідування у вхідних даних, ми автоматично виконуємо вимогу щодо порядку виведення.
Приклад
Прохідний бал дорівнює k = 8. Обчислимо середній бал кожного учня:
Ivanov Ivan: (7 + 9) / 2 = 8 \ge 8, учень приймається;
Petrov Petr: 7 / 1 = 7 < 8, учень не приймається;
Sidorov Sidor: (10 + 8) / 2 = 9 \ge 8, учень приймається.
До школи можуть бути прийняті Ivanov Ivan та Sidorov Sidor — їх і виводимо в порядку слідування у вхідних даних.
Реалізація алгоритму
Оголосимо масиви. Перше і друге слово опису -го учня (прізвище та ім'я) збережемо у та surn[i], а його середній бал — у .
#define MAX 10000
char name[MAX][21], surn[MAX][21];
double res[MAX];Читаємо кількість учнів .
scanf("%d", &n);Обробляємо учнів по черзі. Для -го учня читаємо прізвище, ім'я та кількість вивчених предметів .
for (i = 0; i < n; i++)
{
scanf("%s %s %d", &name[i], & surn[i], &m);Читаємо річних оцінок учня і накопичуємо їх суму в .
res[i] = 0;
for (j = 0; j < m; j++)
{
scanf("%d", &x);
res[i] += x;
}Ділимо суму оцінок на кількість предметів — у отримуємо середній бал -го учня.
res[i] /= m;
}Читаємо прохідний бал .
scanf("%d", &k);Виводимо в порядку слідування у вхідних даних прізвища та імена тих учнів, чий середній бал не менший за .
for (i = 0; i < n; i++)
if (res[i] >= k) printf("%s %s\n", name[i], surn[i]);