80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
#include<stdio.h>
|
|
#include<string.h>
|
|
#include<stdlib.h>
|
|
#define SIZE 100
|
|
|
|
int compare(const void* arg1, const void* arg2);
|
|
|
|
int main(){
|
|
|
|
char* pole_smernikov[SIZE];
|
|
memset(pole_smernikov,0,SIZE*sizeof(char*));
|
|
|
|
int pocet_mien_v_poli=0;
|
|
|
|
int p = 0;
|
|
scanf("%d",&p);
|
|
getchar();
|
|
|
|
while(1){
|
|
char line[SIZE];
|
|
memset(line,0,SIZE);
|
|
char* r = fgets(line,SIZE,stdin);
|
|
|
|
int pocet_znakov=0;
|
|
if(!r||r[0]=='\n')break;
|
|
else pocet_znakov=strlen(line);
|
|
int skip=0;
|
|
for (int i=0;skip==0&&i<pocet_mien_v_poli; i++){
|
|
if (!memcmp(pole_smernikov[i],line,pocet_znakov)){
|
|
skip=1;
|
|
}
|
|
}
|
|
if(!skip){
|
|
pole_smernikov[pocet_mien_v_poli]=malloc(pocet_znakov + 1);
|
|
memcpy(pole_smernikov[pocet_mien_v_poli],line,pocet_znakov + 1);
|
|
pocet_mien_v_poli++;
|
|
}
|
|
}
|
|
qsort(pole_smernikov, pocet_mien_v_poli, sizeof(char*), compare);
|
|
int skip=0;
|
|
for(int j = 0; j<pocet_mien_v_poli; j++){
|
|
for(int i=0;i<strlen(pole_smernikov[j]);i++){
|
|
if((pole_smernikov[j][i]>='a'&&pole_smernikov[j][i]<='z')||(pole_smernikov[j][i]>='A'&&pole_smernikov[j][i]<='Z')){
|
|
continue;
|
|
}
|
|
else{
|
|
printf("Nespravna odpoved\n");
|
|
skip=1;
|
|
}
|
|
}
|
|
}
|
|
if (!skip){
|
|
printf("Prijati studenti:\n");
|
|
for(int i = 0; i<p && i<pocet_mien_v_poli ;i++)
|
|
printf("%s",pole_smernikov[i]);
|
|
|
|
if(p<pocet_mien_v_poli)printf("Neprijati studenti:\n");
|
|
for(int i = p; i<pocet_mien_v_poli ;i++)
|
|
printf("%s",pole_smernikov[i]);
|
|
}
|
|
for(int i = 0;i<pocet_mien_v_poli;i++)
|
|
free(pole_smernikov[i]);
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int compare(const void* arg1, const void* arg2){
|
|
|
|
char* s1 = *((char**)arg1);
|
|
char* s2 = *((char**)arg2);
|
|
|
|
int r = strcmp(s1,s2);
|
|
|
|
return r;
|
|
}
|
|
|
|
|
|
|