#include #include #include #define SIZE 100 typedef struct { char* meno; int hlasov; } Student; int main() { char line[SIZE]; int num_students = 0; Student* students = NULL; while (fgets(line, SIZE, stdin) != NULL) { char* endptr; int hlasov = strtol(line, &endptr, 10); if (endptr == line || *endptr != ' ' || hlasov < 0) { printf("CHYBA: Neplatny zapis na riadku.\n"); return 1; } endptr++; // Preskočenie medzery // Preskočenie medzier za počtom hlasov while (*endptr == ' ') { endptr++; } // Alokácia pamäte pre meno študenta char* meno = malloc(strlen(endptr) + 1); if (meno == NULL) { printf("CHYBA: Nepodarilo sa alokovať pamäť.\n"); return 1; } // Kopírovanie mena strcpy(meno, endptr); // Reallokácia pamäte pre ďalšieho študenta students = realloc(students, (num_students + 1) * sizeof(Student)); if (students == NULL) { printf("CHYBA: Nepodarilo sa alokovať pamäť.\n"); return 1; } // Nastavenie hodnôt pre nového študenta students[num_students].meno = meno; students[num_students].hlasov = hlasov; num_students++; } // Výpis výsledkov printf("Vysledky:\n"); for (int i = 0; i < num_students; i++) { printf("%d %s\n", students[i].hlasov, students[i].meno); } // Uvoľnenie pamäte for (int i = 0; i < num_students; i++) { free(students[i].meno); } free(students); return 0; }