pvjc24/cv10/program.c

75 lines
1.9 KiB
C
Raw Permalink Normal View History

2024-04-15 20:00:45 +00:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
int compare(const void* arg1, const void* arg2) {
2024-04-15 20:09:20 +00:00
char* s1 = *((char**)arg1);
char* s2 = *((char**)arg2);
2024-04-15 20:00:45 +00:00
return strcmp(s1, s2);
}
int main() {
2024-04-15 20:09:20 +00:00
char* pole_smernikov[SIZE];
memset(pole_smernikov, 0, SIZE * sizeof(char*));
2024-04-15 20:00:45 +00:00
int pocet_mien_v_poli = 0;
2024-04-15 20:17:07 +00:00
// Načítanie maximálneho počtu študentov
int max_students;
if (scanf("%d\n", &max_students) != 1 || max_students <= 0) {
puts("Nespravny vstup");
2024-04-15 20:24:06 +00:00
return 0;
2024-04-15 20:17:07 +00:00
}
2024-04-15 20:00:45 +00:00
char line[SIZE];
while (fgets(line, SIZE, stdin) != NULL) {
2024-04-15 20:24:06 +00:00
line[strcspn(line, "\n")] = 0;
int pocet_znakov = strlen(line) + 1;
if (pocet_znakov == 1)
2024-04-15 20:09:20 +00:00
continue;
2024-04-15 20:03:45 +00:00
2024-04-15 20:00:45 +00:00
// Kontrola duplicít
int found = 0;
for (int i = 0; i < pocet_mien_v_poli; i++) {
2024-04-15 20:03:45 +00:00
if (strcmp(pole_smernikov[i], line) == 0) {
2024-04-15 20:00:45 +00:00
found = 1;
break;
}
}
2024-04-15 20:09:20 +00:00
if (!found) {
pole_smernikov[pocet_mien_v_poli] = malloc(pocet_znakov);
2024-04-15 20:03:45 +00:00
strcpy(pole_smernikov[pocet_mien_v_poli], line);
2024-04-15 20:00:45 +00:00
pocet_mien_v_poli += 1;
}
}
2024-04-15 20:17:07 +00:00
if (pocet_mien_v_poli == 0) {
puts("Ziadne prihlasky");
2024-04-15 20:24:06 +00:00
return 0;
2024-04-15 20:17:07 +00:00
}
2024-04-15 20:00:45 +00:00
// Triedenie
qsort(pole_smernikov, pocet_mien_v_poli, sizeof(char*), compare);
// Výpis prijatých a neprijatých študentov
2024-04-15 20:17:07 +00:00
puts("Prijati studenti:");
2024-04-15 20:00:45 +00:00
for (int i = 0; i < max_students && i < pocet_mien_v_poli; i++) {
2024-04-15 20:03:45 +00:00
printf("%s\n", pole_smernikov[i]);
2024-04-15 20:00:45 +00:00
}
2024-04-15 20:17:07 +00:00
if (max_students < pocet_mien_v_poli) {
puts("Neprijati studenti:");
for (int i = max_students; i < pocet_mien_v_poli; i++) {
printf("%s\n", pole_smernikov[i]);
}
2024-04-15 20:00:45 +00:00
}
// Uvoľnenie pamäte
for (int i = 0; i < pocet_mien_v_poli; i++) {
free(pole_smernikov[i]);
}
return 0;
}