pvjc23/du6/program.c

63 lines
1.8 KiB
C

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXIMALNE_STUDENTOV 1000
#define MENA 100
int main(){
char spisok[MAXIMALNE_STUDENTOV][MENA]; //pole na ukladanie mien studentov
int maximalne_studentov, num_studentov = 0;
if(scanf("%d", &maximalne_studentov) != 1){ //precitane si maximalny pocet prijatych studentov
puts("Nespravny vstup");
return 1;
}
while(fgets(spisok[num_studentov], MENA, stdin)){ //precitajte si zoznam studentskych prihlasok
spisok[num_studentov][strcspn(spisok[num_studentov], "\n")] = '\0'; //odstranie koncovoho znaka noveho riadku
if(spisok[num_studentov][0] == '\0'){ //zastavnie citanie ak najdeni prazdny riadok alebo koniec suboru
break;
}
for(int a = 0; a < num_studentov; a++){ //skontrolujem duplicitne mena
if(strcmp(spisok[a], spisok[num_studentov]) == 0){
puts("Ziadne prihlasky");
return 1;
}
}
num_studentov++;
if(num_studentov >= maximalne_studentov){ //po dosiahnuti maximalneho poctu studentov zastavte citanie
break;
}
}
for(int a = 0; a < num_studentov; a++){ //zorad zoznam studentov podla abecedy
for(int b = a +1; b < num_studentov; b++){
if(strcmp(spisok[a], spisok[b]) > 0){
char p[MENA];
strcpy(p, spisok[a]);
strcpy(spisok[a], spisok[b]);
strcpy(spisok[b], p);
}
}
}
puts("Prijati studenti:");
for(int a = 0; a < num_studentov && a < maximalne_studentov; a++){ //vytlacame zoznam prijatich studentov
printf("%s\n", spisok[a]);
}
if(num_studentov > maximalne_studentov){ //vytlacame zoznam odmietnutych studentov
puts("Neprijati studenti:");
for(int a = maximalne_studentov; a < num_studentov; a++){
printf("%s\n", spisok[a]);
}
}
return 0;
}