|
Családi feladat
Adott a következő fejlécállomány:
myheader.h
#ifndef _MYHEADER_H #define _MYHEADER_H 1
struct element { char family[20]; int children[8]; };
#endif /* myheader.h */
letöltés szöveges állományként
Írjon programot, amelynek egyetlen parancssori argumentuma van, egy bináris állomány neve! A
bináris állomány struct element típusú rekordjaiban családok azonosítóként
szolgáló nevei és az adott családban élő gyermekek életkorai találhatók. Minden családnál
legfeljebb 8 gyermek életkorát tartjuk nyilván. Azt, hogy hány gyermek van a családban, a
struktúra children mezőjéből találhatjuk ki: ha a tömb egy eleme nemnegatív
értékű, akkor egy gyermek életkorát jelzi, ráadásul ezek az értékek a tömb elejétől kezdve
helyezkednek el folyamatosan, azaz ha a tömb egy adott eleme negatív értékű lenne, akkor az
utána következő elemek is azok. A gyermekek életkorai tetszőleges sorrendben szerepelhetnek a
tömbben.
A programja először is határozza meg és írja a standard kimenetre, hogy hány család adatai
szerepelnek a bináris állományban, majd írja ki az adataikat is oda a példa kimenetben
látható formában, ahol a családok neve után a gyermekeik száma és a gyermekek életkora
szerepel a tömbben megadott sorrendben! A standard kimenetre a családok adatait a család
legidősebb gyermekének életkora alapján csökkenő sorrendbe rendezve nyomtassa ki! Ha ez
alapján nem tudja két család sorrendjét eldönteni, akkor az ő adataikat a családhoz tartozó
gyermekek számának növekvő sorrendjében írja a standard kimenetre! Ha ez alapján sem tudna
két család között egyértelmű sorrendet felállítani, akkor őket a családok neve alapján
rendezze lexikografikusan növekvő sorba! Figyeljen oda rá, hogy a sorok végén ne
szerepeljenek felesleges szóköz karakterek!
Parancssori argumentumok
families.bin
letöltés szöveges állományként
A futtatás egy lehetséges eredménye a standard kimeneten
4 Williams (6): 0 3 4 14 2 6 Smith (7): 3 9 2 1 11 13 8 Davis (6): 1 4 9 5 12 5 Moore (6): 12 2 7 5 10 3
letöltés szöveges állományként
|
|