#include #include typedef struct hallgato { char nev[30]; int mini1, nagy1, mini2, nagy2, kotprog, javito, hianyzas; struct hallgato *kov; } hallgato; int ellenoriz(hallgato h) { if ( (h.mini1 + h.nagy1 >= 10) && (h.mini2 + h.nagy2 >= 10) && (h.mini1 + h.nagy1 + h.mini2 + h.nagy2 + h.kotprog >= 30) && (h.hianyzas == 0) ) { return h.mini1 + h.nagy1 + h.mini2 + h.nagy2 + h.kotprog; } else if ( (h.mini1 + h.nagy1 + h.mini2 + h.nagy2 + h.kotprog >= 10) && (h.javito >= 30) && (h.hianyzas == 0) ) { return h.mini1 + h.nagy1 + h.mini2 + h.nagy2 + h.kotprog; } else { return 0; } } int main() { hallgato *elso, *p; int vanKov; elso = NULL; do { p = (hallgato *) calloc(1, sizeof(hallgato)); printf("Nev:"); scanf("%29s%*[^\n]\n", &(p->nev)); printf("1. mini ZH:"); scanf("%d%*[^\n]\n", &(p->mini1)); printf("1. nagy ZH:"); scanf("%d%*[^\n]\n", &(p->nagy1)); printf("2. mini ZH:"); scanf("%d%*[^\n]\n", &(p->mini2)); printf("2. nagy ZH:"); scanf("%d%*[^\n]\n", &(p->nagy2)); printf("Kotelezo program:"); scanf("%d%*[^\n]\n", &(p->kotprog)); printf("Javito:"); scanf("%d%*[^\n]\n", &(p->javito)); printf("Hianyzasok szama:"); scanf("%d%*[^\n]\n", &(p->hianyzas)); p->kov = elso; elso = p; printf("Kovetkezo hallgato bevitele? (0=nem/1=igen) "); scanf("%d", &vanKov); } while(vanKov); for (p = elso; p != NULL; p = p->kov) { printf("%-30s %d\n", p->nev, ellenoriz(*p)); } for (p = elso; p != NULL;) { elso = p; p = p->kov; free(elso); } return 0; }