From 0fd31a3c2e36fcf294a8d145c980a38707b45d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Vl=C4=8Dek?= Date: Mon, 30 Mar 2026 07:38:36 +0000 Subject: [PATCH] Aktualizovat a3/program.c --- a3/program.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/a3/program.c b/a3/program.c index 937f0b3..16872d8 100644 --- a/a3/program.c +++ b/a3/program.c @@ -1,21 +1,24 @@ #include #include #include +#include #DEFINE BUFFER_SIZE 64; #DEFINE STUDENT_SIZE 32; struct studentApplication { - char meno[BUFFER_SIZE]; + char name[STUDENT_SIZE]; } int main() { + //helper/pomocne lokalne premeny int studentsAmount; struct studentsApplication student[STUDENT_SIZE]; int i = 0; char processedName[BUFFER_SIZE]; + char newLineSymbol = '\n'; setMemoryOfArrays(processedName, student); @@ -28,6 +31,7 @@ int main() else if(sscanf(line, "%s", processedName) == 1) { strcpy(student[i].meno, processedName); + strncat(student[i].meno, &newLineSymbol, 1); i++; } } @@ -38,6 +42,21 @@ int main() return 0; } + qsort(student, STUDENT_SIZE, sizeof(struct studentsApplication), compare); + + // vypis vysledkov: + for (int i = 0; i < studentsAmount; i++) + { + puts("Prijati studenti:"); + puts(student[i].meno); + } + + for (int i = 0; student[i].meno[0] != '\0'; i++) + { + puts("Neprijati studenti:"); + puts(student[i].meno); + } + return 0; } @@ -46,9 +65,18 @@ void setMemoryOfArrays(char* processedName, studentsApplication* student) //prednastavi pamat mnozinovych premien processedName[0] = '\0'; - for (int i = 0; i++; i < STUDENT_SIZE) + for (int i = 0; i < STUDENT_SIZE; i++) { - student[i].meno = '\0'; + student[i].meno[0] = '\0'; } } +int compare(const void* p1, const void* p2) +{ + //casting, resp. premena dat. typu pointerov na ich spravny typ + //nakolko qsort() pozaduje od porovnavaciej funkcie, aby akceptovala pointery s lubovolnym dat. typom (const void*) + struct studentsApplication *s1 = (struct studentsApplication *)p1; + struct studentsApplication *s2 = (struct studentsApplication *)p2; + + return strcmp(s1->name, s2->name); +}