#include #include #include #include #include #include #define SIZE 100 int compare(const void* arg1, const void* arg2){ const char** ptr1 = (const char**)arg1; const char** ptr2 = (const char**)arg2; return strcmp(*ptr1, *ptr2); } int main(){ char* pole_smernikov[SIZE]; memset(pole_smernikov,0,SIZE*sizeof(char*)); char line[SIZE]; memset(line,0,SIZE); char* r = fgets(line, SIZE, stdin); int pocet_mien_v_poli = 0; int copy = 0; int kolicestvo = atoi(line); if(kolicestvo <= 0){ puts("Nespravny vstup"); return 0; } //int countpr = 0; while(1){ r = fgets(line, SIZE, stdin); if(line[0] == '\n'){ break; } if(r == NULL){ break; } int pocet_znakov = strlen(line); /*for(int i = 0; i < pocet_znakov; i++){ if(!isalpha(line[i])){ countpr++; printf("-->%d\n",countpr); } } if(countpr != 2){ puts("Ziadne prihlasky\n"); return 0; }*/ for(int i = 0; i < pocet_mien_v_poli; i++){ if(strcmp(pole_smernikov[i],line) == 0){ copy = 1; //printf("Chyba\n"); } } if(copy == 0){ if (pocet_mien_v_poli >= SIZE) { printf("Pole smernikov je plne\n"); break; } 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 += 1; //printf("Opa\n"); } copy = 0; } qsort(pole_smernikov, pocet_mien_v_poli, sizeof(char*), compare); //printf("===>%d\n", pocet_mien_v_poli); if(pocet_mien_v_poli > kolicestvo){ puts("Prijati studenti:"); for (int i = 0; i < kolicestvo; i++) { printf("%s", pole_smernikov[i]); } puts("Neprijati studenti:"); for (int i = kolicestvo; i < pocet_mien_v_poli; i++) { printf("%s", pole_smernikov[i]); } } else{ puts("Prijati studenti:"); for (int i = 0; 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; }