This commit is contained in:
Tančáková 2024-03-22 08:35:26 +01:00
parent 3d2a889780
commit d8cecd7229

View File

@ -28,31 +28,32 @@ int read_students(struct Student students[], int max_students) {
int num_students = 0; int num_students = 0;
char line[MAX_SIZE]; char line[MAX_SIZE];
while (fgets(line, sizeof(line), stdin) != NULL) { while (fgets(line, sizeof(line), stdin) != NULL) {
int votes;
char name[MAX_SIZE]; char name[MAX_SIZE];
// Ak sa nenačítajú dva prvky (počet hlasov a meno), ukončíme načítanie int votes;
if (sscanf(line, "%d %99[^\n]", &votes, name) == 2) { // Načítame počet hlasov
// Prejdeme všetkých študentov a ak nájdeme rovnaké meno, pripočítame hlasy votes = (int)strtol(line, &line, 10);
int found = 0; // Preskočíme medzeru
for (int i = 0; i < num_students; i++) { line++;
if (strcmp(students[i].name, name) == 0) { // Načítame meno študenta
students[i].votes += votes; memcpy(name, line, strlen(line) - 1); // Odstránime znak nového riadka
found = 1; name[strlen(line) - 1] = '\0'; // Nastavíme koniec reťazca
break; // Prejdeme všetkých študentov a ak nájdeme rovnaké meno, pripočítame hlasy
} int found = 0;
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
students[i].votes += votes;
found = 1;
break;
} }
// Ak sme nenašli rovnaké meno, pridáme nového študenta }
if (!found) { // Ak sme nenašli rovnaké meno, pridáme nového študenta
strcpy(students[num_students].name, name); if (!found) {
students[num_students].votes = votes; strcpy(students[num_students].name, name);
num_students++; students[num_students].votes = votes;
if (num_students >= max_students) { num_students++;
break; // Prekročený maximálny počet študentov if (num_students >= max_students) {
} break; // Prekročený maximálny počet študentov
} }
} else {
// Chyba pri načítaní formátu, ukončíme načítanie
break;
} }
} }
return num_students; return num_students;