From f7d21c44c1bcf7a8b2357870eee2c34a5e6fd216 Mon Sep 17 00:00:00 2001 From: Filip Chochol Date: Tue, 10 Mar 2026 13:46:07 +0100 Subject: [PATCH] push --- du2/program.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/du2/program.c b/du2/program.c index dd178a8..f7982a1 100644 --- a/du2/program.c +++ b/du2/program.c @@ -4,17 +4,13 @@ #define SIZE 100 -struct student { - +struct student { char meno[SIZE]; int hlasy; - }; int najdi_studenta(struct student* studenti, int pocet, const char* meno) { - for (int i = 0; i < pocet; i++) { - if (strcmp(studenti[i].meno, meno) == 0) { return i; } @@ -23,33 +19,27 @@ int najdi_studenta(struct student* studenti, int pocet, const char* meno) { } int porovnaj(const void* p1, const void* p2) { - struct student* s1 = (struct student*)p1; struct student* s2 = (struct student*)p2; - if (s2->hlasy != s1->hlasy) return s2->hlasy - s1->hlasy; return strcmp(s1->meno, s2->meno); } int main() { - struct student databaza[SIZE]; memset(databaza, 0, SIZE * sizeof(struct student)); int pocet = 0; char riadok[SIZE]; while (1) { - memset(riadok, 0, SIZE); char* vysledok = fgets(riadok, SIZE, stdin); - if (vysledok == NULL) { break; } char* koniec = NULL; int hodnota = (int)strtol(riadok, &koniec, 10); - if (koniec == riadok || hodnota == 0) { break; } @@ -59,7 +49,6 @@ int main() { } char* zaciatok_mena = koniec; - if (*zaciatok_mena == '\n' || *zaciatok_mena == '\0') { continue; } @@ -67,11 +56,9 @@ int main() { char meno[SIZE]; memset(meno, 0, SIZE); int velkost_mena = (int)strlen(zaciatok_mena); - if (zaciatok_mena[velkost_mena - 1] == '\n') { velkost_mena--; } - if (velkost_mena <= 0) { continue; } @@ -80,17 +67,14 @@ int main() { meno[velkost_mena] = '\0'; int index = najdi_studenta(databaza, pocet, meno); - if (index < 0) { if (pocet >= SIZE) { break; } - memcpy(databaza[pocet].meno, meno, velkost_mena); databaza[pocet].meno[velkost_mena] = '\0'; databaza[pocet].hlasy = hodnota; pocet++; - } else { databaza[index].hlasy += hodnota; } @@ -98,10 +82,13 @@ int main() { qsort(databaza, pocet, sizeof(struct student), porovnaj); - printf("Vysledky:\n"); - - for (int i = 0; i < pocet; i++) { - printf("%d %s\n", databaza[i].hlasy, databaza[i].meno); + if (pocet == 0) { + printf("Nepodarilo nacitat nic\n"); + } else { + printf("Vysledky:\n"); + for (int i = 0; i < pocet; i++) { + printf("%d %s\n", databaza[i].hlasy, databaza[i].meno); + } } return 0;