From 7c88c0f4aacd08119b0a0807ef03cddabdc4f554 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 15 Apr 2021 19:49:28 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20'du6/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- du6/program.c | 54 ++++++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/du6/program.c b/du6/program.c index 98b0eb2..253360a 100644 --- a/du6/program.c +++ b/du6/program.c @@ -1,14 +1,13 @@ #include -#include #include +#include #include -int main(){ +int main() { int freePlaces; char inputs[100][50]; - for(int i = 0; i < 100; i++){ + for(int i = 0; i < 100; i++) memset(inputs[i], '\0', 50); - } char* ptr; int finalPosition; int count = 0; @@ -16,65 +15,58 @@ int main(){ for(int i = 0; fgets(inputs[i], 50, stdin) != NULL; i++){ if(i == 0){ - freePlaces = (int) strtol(inputs[0], &ptr, 10); - if(freePlaces < 0){ + freePlaces = (int)strtol(inputs[i], &ptr, 10); + if(freePlaces < 0) printf("Nespravny vstup %d\n", freePlaces); - } } else if(i == 1 && !isalpha(inputs[i][0])){ printf("Ziadne prihlasky\n"); return 0; } else{ - if(!strcmp(inputs[i], "") || inputs[i][0] == '\n'){ + if(!strcmp(inputs[i], "") || inputs[i][0] == '\n') break; - } } - finalPosition = 1; + finalPosition = i; } - //Код ниже избавляется от повторных заявок - + //The code below removes repeating applicants for(int i = 0; i < finalPosition; i++){ - for(int j = 0; j < finalPosition; j++){ - if(!strcmp(inputs[i], inputs[j])){ + for(int j = i+1; j < finalPosition; j++){ + if(!strcmp(inputs[i], inputs[j])) { strcpy(inputs[i], inputs[finalPosition]); - memset(inputs[finalPosition], '\0', 50); + memset(inputs[finalPosition--], '\0', 50); } } } - //Этот код отвечает за сортировку заданных имён в списке зачисленных (а-я) + //The code below orders the applicants by name (a-z) int changesMade = 1; - while (changesMade){ + while(changesMade){ changesMade = 0; for(int i = 0; i < finalPosition; i++){ - while(inputs[i][count] == inputs[i+1][count]){ + while(inputs[i][count] == inputs[i + 1][count]) count++; - } - if(inputs[i][count] > inputs[i+1][count]){ + if(inputs[i][count] > inputs[i + 1][count]){ changesMade = 1; strcpy(temp, inputs[i]); - strcpy(inputs[i], inputs[i+1]); - strcpy(inputs[i+1], temp); + strcpy(inputs[i], inputs[i + 1]); + strcpy(inputs[i + 1], temp); } count = 0; } } printf("Prijati studenti:\n"); - for(int i = 1; i <= freePlaces; i++) { - if(isalpha(inputs[i][0])){ - printf ("%s", inputs[i]); - } + for(int i = 1; i <= freePlaces; i++){ + if(isalpha(inputs[i][0])) + printf("%s", inputs[i]); } if(freePlaces < finalPosition) printf("Neprijati studenti:\n"); - for(int i = freePlaces; i <= finalPosition; i++){ - if(isalpha(inputs[i][0])){ + for(int i = freePlaces; i < finalPosition; i++){ + if(isalpha(inputs[i][0])) printf("%s", inputs[i]); - } } - //free(ptr); return 0; -} +} \ No newline at end of file