diff --git a/du6/program b/du6/program new file mode 100644 index 0000000..323c2e0 Binary files /dev/null and b/du6/program differ diff --git a/du6/program.c b/du6/program.c new file mode 100644 index 0000000..df7c6c5 --- /dev/null +++ b/du6/program.c @@ -0,0 +1,93 @@ +#include +#include +#include +#include + +#define ROZMER 100 +int compare(const void* a1, const void* a2){//na triedenie poľa + char* string1 = *((char**)a1); + char* string2 = *((char**)a2); + int r = strcmp(string1,string2); + return r; +} + +int printStatus(int pocet_mien_v_poli,int number_list){ + if (number_list < 0 || number_list == 0) + { + printf("Nespravny vstup\n"); + return 0; + } + if (pocet_mien_v_poli==1) + { + printf("Ziadne prihlasky\n"); + return 0; + } + return 1; +} +void printAllStudents(int pocet_mien_v_poli, int number_list, char* pole_smernikov[ROZMER]){ + for (size_t i = 0; i <=number_list ; i++) + { + if (pole_smernikov[i]!=NULL) + { + printf("%s",pole_smernikov[i]); + } + } + if (number_list+1 < pocet_mien_v_poli) + { + printf("Neprijati studenti:\n"); + } + for (size_t i = number_list+1; i < pocet_mien_v_poli ; i++) + { + if (pole_smernikov[i]!=NULL) + { + printf("%s",pole_smernikov[i]); + } + } +} + +int main(){ + int pocet_mien_v_poli = 0; + int number_list = 0; + char* pole_smernikov[ROZMER]; + memset(pole_smernikov,0,ROZMER*sizeof(char*)); + scanf("%d", &number_list); + + // prečítať všetkých študentov z terminálu + while (true) + { + char line[ROZMER]; + memset(line,0,ROZMER); + char* r = fgets(line,ROZMER,stdin); + int pocet_znakov = 0; + if (r!=NULL){ + pocet_znakov = strlen(line); + }else{ + break; + } + bool find = false; + for (int i = 0; i < pocet_mien_v_poli; i++){ + if (memcmp(pole_smernikov[i],line,pocet_znakov) == 0){ + find = true; + } + } + if(find == false){ + pole_smernikov[pocet_mien_v_poli] = calloc(' ',pocet_znakov + 1); + memcpy(pole_smernikov[pocet_mien_v_poli],line,pocet_znakov + 1); + pocet_mien_v_poli ++; + } + find = false; + } + + if (printStatus(pocet_mien_v_poli, number_list) == 0){ + return 0; + } + + qsort(pole_smernikov,pocet_mien_v_poli,sizeof(char*),compare);//triedi pole pomocou komparátora + + printf("Prijati studenti:"); + printAllStudents(pocet_mien_v_poli,number_list,pole_smernikov); + + for (int i = 0; i < pocet_mien_v_poli; i++){ + free(pole_smernikov[i]); + } +} \ No newline at end of file