#include #include #include #define MAX_STUDENTS 100 #define NAME_SIZE 50 int compare_names(const void *a, const void *b) { const char **name_a = a; const char **name_b = b; return strcmp(*name_a, *name_b); } int main() { int max_students, num_accepted = 0, num_students = 0; char names[MAX_STUDENTS][NAME_SIZE]; char temp_name[NAME_SIZE]; scanf("%d", &max_students); if (max_students <= 0 || max_students > MAX_STUDENTS) { printf("Nespravny vstup\n"); return 1; } memset(names, 0, sizeof(names)); while (fgets(temp_name, sizeof(temp_name), stdin) != NULL && num_accepted < max_students) { int i, found = 0; // Remove the newline character from the temp_name array temp_name[strcspn(temp_name, "\n")] = '\0'; for (i = 0; i < num_accepted; i++) { if (strcmp(names[i], temp_name) == 0) { found = 1; break; } } if (!found) { strcpy(names[num_accepted], temp_name); num_accepted++; } num_students++; // Check if we have reached the maximum number of accepted students if (num_accepted == max_students) { break; // Exit the loop } } qsort(names, num_accepted, sizeof(names[0]), compare_names); if (num_accepted == 0) { printf("Ziadne prihlasky"); } else { printf("Prijati studenti:\n"); for (int i = 0; i < num_accepted; i++) { printf("%s", names[i]); } } return 0; }