Hər şagird üçün orta balı hesablayaq — onun illik qiymətlərinin cəmini fənlərin sayı m_i-yə bölərək. Şagird məktəbə qəbul oluna bilər, əgər onun orta balı keçid balı -dan az deyilsə.
dəyəri yalnız giriş məlumatlarının son sətrində verilir, ona görə əvvəlcə bütün şagirdlərin təsvirlərini oxuyaq və hər biri üçün soyadını, adını və orta balını yadda saxlayaq. Sonra -nı oxuyaq və orta balı -dan az olmayan şagirdləri çap edək. Şagirdləri giriş məlumatlarında olduqları ardıcıllıqla nəzərdən keçirərək, biz çıxışın sırası ilə bağlı tələbi avtomatik olaraq yerinə yetirmiş oluruq.
Misal
Keçid balı k = 8-dir. Hər şagirdin orta balını hesablayaq:
Ivanov Ivan: (7 + 9) / 2 = 8 \ge 8, şagird qəbul olunur;
Petrov Petr: 7 / 1 = 7 < 8, şagird qəbul olunmur;
Sidorov Sidor: (10 + 8) / 2 = 9 \ge 8, şagird qəbul olunur.
Məktəbə Ivanov Ivan və Sidorov Sidor qəbul oluna bilər — onları giriş məlumatlarında olduqları ardıcıllıqla çap edirik.
Alqoritmin reallaşdırılması
Massivləri elan edək. -ci şagirdin təsvirinin birinci və ikinci sözünü (soyadını və adını) və surn[i]-də, onun orta balını isə -də saxlayaq.
#define MAX 10000
char name[MAX][21], surn[MAX][21];
double res[MAX];Şagirdlərin sayı -i oxuyuruq.
scanf("%d", &n);Şagirdləri növbə ilə emal edirik. -ci şagird üçün soyadını, adını və öyrənilmiş fənlərin sayı -i oxuyuruq.
for (i = 0; i < n; i++)
{
scanf("%s %s %d", &name[i], & surn[i], &m);Şagirdin illik qiymətini oxuyuruq və onların cəmini -də toplayırıq.
res[i] = 0;
for (j = 0; j < m; j++)
{
scanf("%d", &x);
res[i] += x;
}Qiymətlərin cəmini fənlərin sayına bölürük — -də -ci şagirdin orta balını alırıq.
res[i] /= m;
}Keçid balı -nı oxuyuruq.
scanf("%d", &k);Orta balı -dan az olmayan şagirdlərin soyad və adlarını giriş məlumatlarında olduqları ardıcıllıqla çap edirik.
for (i = 0; i < n; i++)
if (res[i] >= k) printf("%s %s\n", name[i], surn[i]);