funguje
This commit is contained in:
parent
994444a401
commit
e09ec4a4f3
@ -4,52 +4,55 @@
|
||||
|
||||
#define SIZE 100
|
||||
|
||||
// Štruktúra pre reprezentáciu študenta
|
||||
typedef struct {
|
||||
char name[SIZE];
|
||||
int votes;
|
||||
char* meno;
|
||||
int hlasov;
|
||||
} 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() {
|
||||
char line[SIZE];
|
||||
char name[SIZE];
|
||||
int votes;
|
||||
int num_students = 0;
|
||||
Student* students = NULL;
|
||||
|
||||
// Databáza študentov
|
||||
Student database[SIZE];
|
||||
int count = 0;
|
||||
|
||||
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) {
|
||||
while (fgets(line, SIZE, stdin) != NULL) {
|
||||
int hlasov;
|
||||
char meno[SIZE];
|
||||
if (sscanf(line, "%d %99[^\n]", &hlasov, meno) != 2) {
|
||||
printf("CHYBA: Neplatny zapis na riadku.\n");
|
||||
continue;
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Pridanie študenta do databázy
|
||||
addStudent(database, name, votes, &count);
|
||||
// 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;
|
||||
}
|
||||
|
||||
// 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
|
||||
printf("\nVysledky:\n");
|
||||
for (int i = 0; i < count; i++) {
|
||||
printf("%d %s\n", database[i].votes, database[i].name);
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user