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;
char line[MAX_SIZE];
while (fgets(line, sizeof(line), stdin) != NULL) {
int votes;
char name[MAX_SIZE];
// Ak sa nenačítajú dva prvky (počet hlasov a meno), ukončíme načítanie
if (sscanf(line, "%d %99[^\n]", &votes, name) == 2) {
// 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;
}
int votes;
// Načítame počet hlasov
votes = (int)strtol(line, &line, 10);
// Preskočíme medzeru
line++;
// Načítame meno študenta
memcpy(name, line, strlen(line) - 1); // Odstránime znak nového riadka
name[strlen(line) - 1] = '\0'; // Nastavíme koniec reťazca
// 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) {
strcpy(students[num_students].name, name);
students[num_students].votes = votes;
num_students++;
if (num_students >= max_students) {
break; // Prekročený maximálny počet študentov
}
}
// Ak sme nenašli rovnaké meno, pridáme nového študenta
if (!found) {
strcpy(students[num_students].name, name);
students[num_students].votes = votes;
num_students++;
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;