Info 2 negyedik házi feladat: "válogatás", átlag feletti pontszámú zéhák megkeresése

Utolsó módosítás: 2009. március 26.

Ebben a feladatban ki kell válogatni egy zárthelyi eredménylistájából azokat a hallgatókat, akik az átlagos pontszámnál jobb zárthelyit írtak.

A program a standard bemenetről beolvas néhány (legalább 2, legfeljebb 120) sort, mindegyik sor egy hallgatóhoz tartozik, aki egy bizonyos (képzeletbeli) zárthelyit megírt. Minden sorban először a hallgató által elért pontszám áll (egy 0 és 200 közötti egész szám), majd egy szóköz, majd a hallgató teljes neve (legfeljebb 60 karakter, állhat két vagy három szóból), majd egy újsor karakter.

A kimenetbe pontosan azon hallgatók nevét kell kiírni, akiknek a pontszáma magasabb, mint az összes megadott pontszám átlaga (számtani közepe). A hallgatók a kimenetben ugyanolyan sorrendben szerepeljenek, mint a bemenetben.

Itt egy rövid példa. A bemenet a következő.

148 Váradi Piroska Júlia
120 Szabó Annamária
192 Katona Csaba
31 Sándor Richárd
70 Pintér Györgyi
107 Váradi Dorottya
165 Szilágyi Erika
119 Hegedüs Bernadett

Ekkor az átlagos pontszám pontosan 119, ezért az ennél magasabb pontszámú hallgatókat kell kigyűjteni. A kimenet így a következő.

Váradi Piroska Júlia
Szabó Annamária
Katona Csaba
Szilágyi Erika

Vegye észre, hogy azt a hallgatót, aki pontosan az átlagot érte el, nem szabad kiírni, és hogy a pontszámokat a kimenetbe szintén nem szabad kiírni.

Ezt a bemenetet, és még két másikat le lehet tölteni a (remélem) helyes kimenettel együtt innen.

hf7be0 -> hf7ki0

hf7be1 -> hf7ki1

hf7be2 -> hf7ki2

Adok néhány tippet. Nyilvánvalóan az összes nevet el kell tárolni a memóriában, mert hiszen az átlagot csak az utolsó sor után tudjuk kiszámítani. Ezt lehet vagy úgy csinálni, mint a gyakorlaton látott h7g0.c programban, amely megfordítja a bemeneten megadott sorokat, vagy malloc-kal, de másképpen is lehet, például két dimenziós tömbbel. A sorok elejéről ki kell nyerni és eltávolítani a pontszámot, ezt megteheti a scanf függvénnyel vagy az sscanf függvénnyel (az egész sor beolvasása után), de minden esetben vigyázzon, hogy a pontszám utáni szóközt is nyelje el. Vigyázzon arra, hogy az átlaggal helyesen hasonlítson össze, akkor is, ha ez nem egész szám.

A megoldást e-mailben küldje el az ambrus@@mmaatthh..bbmmee..hhuu (a dupla karaktereket csak egyszer kell beírni) címre. Az emailben csatolmányként küldje el a megoldáshoz használt forráskódot, és írhat bármilyen megjegyzéseket, amit a megoldással kapcsolatban lényegesnek talál. Az emailben feltétlenül adja meg a nevét, nem szeretnék névtelen házi feladatokat azonosítani. Írja továbbá az emailbe az "info2" szöveget, valamint a feladat rövid nevét, jelen esetben azt, hogy "válogatás", hogy könnyebben szét tudjam válogatni a feladatokat.

Ha a feladathoz bármilyen kérdése van, vagy elakad a megoldással, akkor keressen meg emailben vagy személyesen, akár a gyakorlaton, akár azon kívül.

A feladatot 2009. március 26-án illetve 27-én tűzom ki. A megoldás határideje ehhez képest két hét, vagyis április 10. péntek (aznap még be lehet küldeni).