funguje
This commit is contained in:
parent
994444a401
commit
e09ec4a4f3
@ -4,52 +4,55 @@
|
|||||||
|
|
||||||
#define SIZE 100
|
#define SIZE 100
|
||||||
|
|
||||||
// Štruktúra pre reprezentáciu študenta
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char name[SIZE];
|
char* meno;
|
||||||
int votes;
|
int hlasov;
|
||||||
} Student;
|
} Student;
|
||||||
|
|
||||||
// Funkcia na pridanie študenta do databázy
|
|
||||||
void addStudent(Student database[], char name[], int votes, int *count) {
|
|
||||||
strcpy(database[*count].name, name);
|
|
||||||
database[*count].votes = votes;
|
|
||||||
(*count)++;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
char line[SIZE];
|
char line[SIZE];
|
||||||
char name[SIZE];
|
int num_students = 0;
|
||||||
int votes;
|
Student* students = NULL;
|
||||||
|
|
||||||
// Databáza študentov
|
while (fgets(line, SIZE, stdin) != NULL) {
|
||||||
Student database[SIZE];
|
int hlasov;
|
||||||
int count = 0;
|
char meno[SIZE];
|
||||||
|
if (sscanf(line, "%d %99[^\n]", &hlasov, meno) != 2) {
|
||||||
printf("Zadajte mená študentov a počet hlasov:\n");
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
// Načítanie riadku zo štandardného vstupu
|
|
||||||
if (fgets(line, SIZE, stdin) == NULL || line[0] == '\n') {
|
|
||||||
break; // Koniec načítania
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rozdelenie riadku na meno a počet hlasov
|
|
||||||
if (sscanf(line, "%s %d", name, &votes) != 2) {
|
|
||||||
printf("CHYBA: Neplatny zapis na riadku.\n");
|
printf("CHYBA: Neplatny zapis na riadku.\n");
|
||||||
continue;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pridanie študenta do databázy
|
// Reallokácia pamäte pre ďalšieho študenta
|
||||||
addStudent(database, name, votes, &count);
|
students = realloc(students, (num_students + 1) * sizeof(Student));
|
||||||
|
if (students == NULL) {
|
||||||
|
printf("CHYBA: Nepodarilo sa alokovať pamäť.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alokácia pamäte pre meno študenta a kópia mena
|
||||||
|
students[num_students].meno = malloc(strlen(meno) + 1);
|
||||||
|
if (students[num_students].meno == NULL) {
|
||||||
|
printf("CHYBA: Nepodarilo sa alokovať pamäť.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
strcpy(students[num_students].meno, meno);
|
||||||
|
students[num_students].hlasov = hlasov;
|
||||||
|
|
||||||
|
num_students++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Výpis výsledkov
|
// Výpis výsledkov
|
||||||
printf("\nVysledky:\n");
|
printf("Vysledky:\n");
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < num_students; i++) {
|
||||||
printf("%d %s\n", database[i].votes, database[i].name);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user