From 9b809dbb03777c07476f53b7fa0d23668154a464 Mon Sep 17 00:00:00 2001 From: Vladyslav Korzun Date: Wed, 5 Apr 2023 17:30:36 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB(=D0=B0)=20?= =?UTF-8?q?'du6/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- du6/program.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 du6/program.c diff --git a/du6/program.c b/du6/program.c new file mode 100644 index 0000000..582b60f --- /dev/null +++ b/du6/program.c @@ -0,0 +1,88 @@ +#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\n"); +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 != 1){ + 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"); + } +countpr = 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; +} +