From 036b9fbe75fc6124df4049f9b0ef736d5e751d58 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 4 Nov 2021 23:23:05 +0000 Subject: [PATCH 01/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 61 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 3ecfbc8..e4ca71c 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -1,18 +1,63 @@ -#include "a_train.h" #include +#include +#include +#include "a_train.h" -struct car* add_car(struct car* first,const char* target) { - return NULL; +struct car* add_car(struct car* first, const char* target){ + if(!strcmp(target, "") && !first) + return NULL; + + struct car* temp = first; + + while(temp->next != NULL) + temp = temp->next; + + temp->next = (struct car*)calloc(1, sizeof(struct car)); + strcpy(temp->next->value, target); + temp->next->next = NULL; + return first; } -void print_train(struct car* first) { +void print_train(struct car* first){ + struct car* temp = first; + + while(temp != NULL){ + printf("%s\n", temp->value); + temp = temp->next; + } } -void cancel_train(struct car* first) { +void cancel_train(struct car* first){ + if(!first) + return; + + struct car* temp = first; + struct car* next = temp->next; + + while(next != NULL){ + next = temp->next; + free(temp); + temp = next; + } + + first = NULL; } +struct car* clear_train(struct car* first, const char* target){ + if(!first || !strcmp(target, "")) + return NULL; -struct car* clear_train(struct car* first, const char* target) { - return NULL; -} + struct car* temp = first; + struct car* next = temp->next; + while(next != NULL){ + next = temp->next; + if(!strcmp(temp->value, target)) + free(temp); + temp = next; + if(!first) + first = temp; + } + + return first; +} \ No newline at end of file From e08472fa25e1e1b9f472ca9e7bd23316322cf66e Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 4 Nov 2021 23:42:09 +0000 Subject: [PATCH 02/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index e4ca71c..fe22a14 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -4,12 +4,12 @@ #include "a_train.h" struct car* add_car(struct car* first, const char* target){ - if(!strcmp(target, "") && !first) + if(!strcmp(target, "")) return NULL; struct car* temp = first; - while(temp->next != NULL) + while(temp != NULL) temp = temp->next; temp->next = (struct car*)calloc(1, sizeof(struct car)); From 43082a4100ec47a7cd9e3987ae2339fa6bc5dda4 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 4 Nov 2021 23:55:06 +0000 Subject: [PATCH 03/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index fe22a14..298bc60 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -7,9 +7,16 @@ struct car* add_car(struct car* first, const char* target){ if(!strcmp(target, "")) return NULL; + if(!first){ + first = (struct car*)calloc(1, sizeof(struct car)); + strcpy(first->value, target); + first->next = NULL; + return first; + } + struct car* temp = first; - while(temp != NULL) + while(temp->next != NULL) temp = temp->next; temp->next = (struct car*)calloc(1, sizeof(struct car)); From f36ccea4fda8cd535c0a9f9c793d306690c832f0 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 00:06:42 +0000 Subject: [PATCH 04/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 298bc60..53f3c94 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -57,7 +57,7 @@ struct car* clear_train(struct car* first, const char* target){ struct car* temp = first; struct car* next = temp->next; - while(next != NULL){ + while(temp != NULL){ next = temp->next; if(!strcmp(temp->value, target)) free(temp); From 61bb5a0a4d3613511ec22eeaa4bde6bb1339182c Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 01:40:25 +0000 Subject: [PATCH 05/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 53f3c94..6917ff5 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -63,7 +63,7 @@ struct car* clear_train(struct car* first, const char* target){ free(temp); temp = next; if(!first) - first = temp; + *first = temp; } return first; From 17d470750c8e5dcb6d24715f7c4b6ca1b67249db Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 01:41:04 +0000 Subject: [PATCH 06/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 6917ff5..53f3c94 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -63,7 +63,7 @@ struct car* clear_train(struct car* first, const char* target){ free(temp); temp = next; if(!first) - *first = temp; + first = temp; } return first; From e0089afd765b7c4b8e9247531f5ea951de372188 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 01:54:29 +0000 Subject: [PATCH 07/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 53f3c94..5fdfd7e 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -43,9 +43,10 @@ void cancel_train(struct car* first){ while(next != NULL){ next = temp->next; - free(temp); + temp = next; } + free(temp); first = NULL; } @@ -60,11 +61,12 @@ struct car* clear_train(struct car* first, const char* target){ while(temp != NULL){ next = temp->next; if(!strcmp(temp->value, target)) - free(temp); + temp = next; if(!first) first = temp; } + free(temp); return first; } \ No newline at end of file From ac53ed8b42dddb7870fa300f0eb7f15bf0a62247 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 08:16:58 +0000 Subject: [PATCH 08/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 5fdfd7e..3b66395 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -43,10 +43,9 @@ void cancel_train(struct car* first){ while(next != NULL){ next = temp->next; - + free(temp); temp = next; } - free(temp); first = NULL; } @@ -61,12 +60,11 @@ struct car* clear_train(struct car* first, const char* target){ while(temp != NULL){ next = temp->next; if(!strcmp(temp->value, target)) - + free(temp); temp = next; if(!first) first = temp; } - free(temp); return first; } \ No newline at end of file From 4859bc0eccdae2c1d09bab91a7e3f0e6f523e95b Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 08:40:52 +0000 Subject: [PATCH 09/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 3b66395..25ab7b9 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -7,7 +7,7 @@ struct car* add_car(struct car* first, const char* target){ if(!strcmp(target, "")) return NULL; - if(!first){ + if(!first || !strcmp(first->value, "")){ first = (struct car*)calloc(1, sizeof(struct car)); strcpy(first->value, target); first->next = NULL; @@ -16,12 +16,12 @@ struct car* add_car(struct car* first, const char* target){ struct car* temp = first; - while(temp->next != NULL) + while(temp != NULL) temp = temp->next; - temp->next = (struct car*)calloc(1, sizeof(struct car)); - strcpy(temp->next->value, target); - temp->next->next = NULL; + temp = (struct car*)calloc(1, sizeof(struct car)); + strcpy(temp->value, target); + temp->next = NULL; return first; } @@ -59,12 +59,27 @@ struct car* clear_train(struct car* first, const char* target){ while(temp != NULL){ next = temp->next; - if(!strcmp(temp->value, target)) - free(temp); + if(!strcmp(temp->value, target)) { + if(temp == first) { + free(first); + first = NULL; + } + else + free(temp); + } temp = next; if(!first) first = temp; } return first; +} + +int main(){ + struct car* myCar = (struct car*)calloc(1, sizeof(struct car)); + myCar = add_car(myCar, "Kosice"); + print_train(myCar); + myCar = clear_train(myCar, "Kosice"); + print_train(myCar); + return 0; } \ No newline at end of file From cd1b052dbab4adeb1c2577f7f19421ed5d3a1445 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 08:41:59 +0000 Subject: [PATCH 10/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 25ab7b9..e6c1958 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -75,11 +75,11 @@ struct car* clear_train(struct car* first, const char* target){ return first; } -int main(){ +/*int main(){ struct car* myCar = (struct car*)calloc(1, sizeof(struct car)); myCar = add_car(myCar, "Kosice"); print_train(myCar); myCar = clear_train(myCar, "Kosice"); print_train(myCar); return 0; -} \ No newline at end of file +}*/ \ No newline at end of file From 40192942a1f819672c5bab23ceb73d39f6e27f26 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Fri, 5 Nov 2021 08:44:46 +0000 Subject: [PATCH 11/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index e6c1958..1dd34aa 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -16,12 +16,12 @@ struct car* add_car(struct car* first, const char* target){ struct car* temp = first; - while(temp != NULL) + while(temp->next != NULL) temp = temp->next; - temp = (struct car*)calloc(1, sizeof(struct car)); - strcpy(temp->value, target); - temp->next = NULL; + temp->next = (struct car*)calloc(1, sizeof(struct car)); + strcpy(temp->next->value, target); + temp->next->next = NULL; return first; } @@ -73,13 +73,4 @@ struct car* clear_train(struct car* first, const char* target){ } return first; -} - -/*int main(){ - struct car* myCar = (struct car*)calloc(1, sizeof(struct car)); - myCar = add_car(myCar, "Kosice"); - print_train(myCar); - myCar = clear_train(myCar, "Kosice"); - print_train(myCar); - return 0; -}*/ \ No newline at end of file +} \ No newline at end of file From 2e11a7a1796a52f971a6c0975ccc3041112ed8e2 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 09:20:29 +0000 Subject: [PATCH 12/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 106 ++++++++++++-------------------------------------- 1 file changed, 24 insertions(+), 82 deletions(-) diff --git a/cv2/program.c b/cv2/program.c index 6cb5be0..8a5c7bc 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -6,47 +6,48 @@ struct dish{ char name[100]; float price; -<<<<<<< HEAD -}; - -int comparator (const void * p1, const void * p2){ - return (*(int*)p1 - *(int*)p2); -} - -void getOrder(struct dish dishesList[100], int dishesNumber, int* result){ - float allPrises[dishesNumber]; - float ascendingPrises[dishesNumber]; - int* order = calloc(dishesNumber, sizeof(int)); - int counter = 0; - float temp; -======= }; // блюда -- название и цена int comparator (const void * p1, const void * p2){ return (*(int*)p1 - *(int*)p2); } // сравнитель для сортировки +int* insertSort(int* array, int size){ + int temp; + for(int i = 1; i < size; i++){ +  if(array[i] < array[i-1]){ +   for(int j = i-1; j >= 0; j--){ +    if(array[i] >= array[j]){ +     break; +    } +    else{ +     temp = array[j]; +     array[j] = array[i]; +     array[i] = temp; +     i = j; +    } +   } +  } + } + + return array; +} + + void getOrder(struct dish dishesList[100], int dishesNumber, int* result){ //сортиовка по ценам float allPrises[dishesNumber]; //все цены float ascendingPrises[dishesNumber]; // для сортировки в будущем int* order = calloc(dishesNumber, sizeof(int)); //порядок возрастающих элементов в масиве int counter = 0; //счетчик ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 for(int i = 0; i < dishesNumber; i++){ allPrises[i] = dishesList[i].price; ascendingPrises[i] = allPrises[i]; } -<<<<<<< HEAD - qsort(ascendingPrises, dishesNumber, sizeof(int), comparator); - - for(int i = 0; i < dishesNumber; i++){ -======= - qsort(ascendingPrises, dishesNumber, sizeof(int), comparator); //процеес сортировки + ascendingPrises = insertSort(ascendingPrices, dishesNumber); //процеес сортировки for(int i = 0; i < dishesNumber; i++){ //запись порядка элемента в основном массиве ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 for(int j = 0; j < dishesNumber; j++){ STEP: if(ascendingPrises[i] == allPrises[j]){ @@ -63,34 +64,15 @@ void getOrder(struct dish dishesList[100], int dishesNumber, int* result){ //с } } -<<<<<<< HEAD - memcpy(result, order, dishesNumber * sizeof(int)); -} - -void getAlphabetOrder(int* order, struct dish dishesList[100], int dishesNumber){ -======= memcpy(result, order, dishesNumber * sizeof(int)); //копирование одного в другой } void getAlphabetOrder(int* order, struct dish dishesList[100], int dishesNumber){ //сорторвка по алфавиту ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 int* result = calloc(dishesNumber, sizeof(int)); int counter = 0; int temp; for(int i = 0; i < dishesNumber; i++){ -<<<<<<< HEAD - for(int j = i; j < dishesNumber; j++){ - if(dishesList[order[i]].price == dishesList[order[j]].price){ - if(dishesList[order[i]].name[0] < dishesList[order[j]].name[0]){ - break; - } - else if(dishesList[order[i]].name[0] == dishesList[order[j]].name[0]){ - if(dishesList[order[i]].name[1] < dishesList[order[j]].name[1]){ - break; - } - else{ -======= for(int j = i; j < dishesNumber; j++){ //чтение масивов их сравнение if(dishesList[order[i]].price == dishesList[order[j]].price){ //сравнение если цены совпадают if(dishesList[order[i]].name[0] < dishesList[order[j]].name[0]){ // если цены сопали но уже в порядке алфавита @@ -101,53 +83,18 @@ void getAlphabetOrder(int* order, struct dish dishesList[100], int dishesNumber) break; } else{ ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 temp = order[i]; order[i] = order[j]; order[j] = temp; } } -<<<<<<< HEAD - else{ -======= else{ //цены совпали но не в порядке алфавита ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 temp = order[i]; order[i] = order[j]; order[j] = temp; } } } -<<<<<<< HEAD - result[counter] = order[i]; - counter++; - } - - memcpy(order, result, dishesNumber * sizeof(int)); -} - -int main(){ - struct dish dishesList[100]; - int i = 0; - int finalCounter = 0; - - for(i = 0; fgets(dishesList[i].name, 100, stdin); i++){ - finalCounter++; - if(dishesList[i].name[0] == '\n' || dishesList[i].name[0] == '\0') finalCounter--; - scanf("%f", &dishesList[i].price); - if(dishesList[i].price == 0.0){ - finalCounter--; - break; - } - getchar(); - } - - int* printOrder = calloc(finalCounter, sizeof(int)); - getOrder(dishesList, finalCounter, printOrder); - getAlphabetOrder(printOrder, dishesList, finalCounter); - - for(int j = 0; j < finalCounter; j++){ -======= result[counter] = order[i]; //запись сортирвки counter++; } @@ -176,14 +123,9 @@ int main(){ getAlphabetOrder(printOrder, dishesList, finalCounter); for(int j = 0; j < finalCounter; j++){ //вывод ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 printf("%s", dishesList[printOrder[j]].name); printf("%f\n", dishesList[printOrder[j]].price); } return 0; -<<<<<<< HEAD -} -======= -} ->>>>>>> 4c98f69b4ddc69a1a8afad98899d692228dc1269 +} \ No newline at end of file From 158a70911c7d05458901575da9c72cca36359602 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 09:26:25 +0000 Subject: [PATCH 13/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cv2/program.c b/cv2/program.c index 8a5c7bc..1c92c12 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -15,15 +15,15 @@ int comparator (const void * p1, const void * p2){ int* insertSort(int* array, int size){  int temp;  for(int i = 1; i < size; i++){ -  if(array[i] < array[i-1]){ +  if(array[i].price < array[i-1].price){    for(int j = i-1; j >= 0; j--){ -    if(array[i] >= array[j]){ +    if(array[i].price >= array[j].price){      break;     }     else{ -     temp = array[j]; -     array[j] = array[i]; -     array[i] = temp; +     temp = array[j].price; +     array[j].price = array[i].price; +     array[i].price = temp;      i = j;     }    } From bf5d407edc494932034410c6a3c0dbe488203eeb Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 10:49:53 +0000 Subject: [PATCH 14/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 124 ++++++++++++-------------------------------------- 1 file changed, 29 insertions(+), 95 deletions(-) diff --git a/cv2/program.c b/cv2/program.c index 1c92c12..3cd901b 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -3,103 +3,38 @@ #include #include +#define SIZE 100 + struct dish{ char name[100]; - float price; + int price; }; // блюда -- название и цена -int comparator (const void * p1, const void * p2){ - return (*(int*)p1 - *(int*)p2); -} // сравнитель для сортировки - -int* insertSort(int* array, int size){ - int temp; - for(int i = 1; i < size; i++){ -  if(array[i].price < array[i-1].price){ -   for(int j = i-1; j >= 0; j--){ -    if(array[i].price >= array[j].price){ -     break; -    } -    else{ -     temp = array[j].price; -     array[j].price = array[i].price; -     array[i].price = temp; -     i = j; -    } -   } -  } - } - - return array; -} - - -void getOrder(struct dish dishesList[100], int dishesNumber, int* result){ //сортиовка по ценам - float allPrises[dishesNumber]; //все цены - float ascendingPrises[dishesNumber]; // для сортировки в будущем - int* order = calloc(dishesNumber, sizeof(int)); //порядок возрастающих элементов в масиве - int counter = 0; //счетчик - - for(int i = 0; i < dishesNumber; i++){ - allPrises[i] = dishesList[i].price; - ascendingPrises[i] = allPrises[i]; - } - - ascendingPrises = insertSort(ascendingPrices, dishesNumber); //процеес сортировки - - for(int i = 0; i < dishesNumber; i++){ //запись порядка элемента в основном массиве - for(int j = 0; j < dishesNumber; j++){ - STEP: - if(ascendingPrises[i] == allPrises[j]){ - for(int y = 0; y < counter; y++){ - if(order[y] == j){ - j++; - goto STEP; - } - } - order[counter] = j; - counter++; - break; - } - } - } - - memcpy(result, order, dishesNumber * sizeof(int)); //копирование одного в другой -} - -void getAlphabetOrder(int* order, struct dish dishesList[100], int dishesNumber){ //сорторвка по алфавиту - int* result = calloc(dishesNumber, sizeof(int)); - int counter = 0; - int temp; - - for(int i = 0; i < dishesNumber; i++){ - for(int j = i; j < dishesNumber; j++){ //чтение масивов их сравнение - if(dishesList[order[i]].price == dishesList[order[j]].price){ //сравнение если цены совпадают - if(dishesList[order[i]].name[0] < dishesList[order[j]].name[0]){ // если цены сопали но уже в порядке алфавита - break; - } - else if(dishesList[order[i]].name[0] == dishesList[order[j]].name[0]){ //если цены совпали но первые буквы одиннаковые - if(dishesList[order[i]].name[1] < dishesList[order[j]].name[1]){ - break; - } - else{ - temp = order[i]; - order[i] = order[j]; - order[j] = temp; - } - } - else{ //цены совпали но не в порядке алфавита - temp = order[i]; - order[i] = order[j]; - order[j] = temp; - } - } - } - result[counter] = order[i]; //запись сортирвки - counter++; - } - - memcpy(order, result, dishesNumber * sizeof(int)); //запись результата в main +void insertSort(struct pizza array[100], int finalCounter){ + struct pizza temp; +  for(int i = 1; i < finalCounter; i++){ +   if(array[i].price < array[i-1].price){ +    for(int j = i-1; j >= 0; j--){ +     if(array[i].price > array[j].price){ +      break; +     } +     else if(array[i].price == array[j].price){ +      if(strcmp(array[i].name, array[j].name) < 0){ +       temp = array[j]; +       array[j] = array[i]; +       array[i] = temp; +       i = j; +      } +     } +     else{ +      temp = array[j]; +     array[j] = array[i]; +     array[i] = temp; +     i = j; +     } +    } +   } +  } } int main(){ @@ -119,8 +54,7 @@ int main(){ } int* printOrder = calloc(finalCounter, sizeof(int)); //полная запись всего результата - getOrder(dishesList, finalCounter, printOrder); - getAlphabetOrder(printOrder, dishesList, finalCounter); + insertSort(dishesList, finalCounter); for(int j = 0; j < finalCounter; j++){ //вывод printf("%s", dishesList[printOrder[j]].name); From de0218e7c8638a797b4151742a7b5a44bbd23561 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 10:53:54 +0000 Subject: [PATCH 15/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cv2/program.c b/cv2/program.c index 3cd901b..8c25689 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -57,8 +57,8 @@ int main(){ insertSort(dishesList, finalCounter); for(int j = 0; j < finalCounter; j++){ //вывод - printf("%s", dishesList[printOrder[j]].name); - printf("%f\n", dishesList[printOrder[j]].price); + printf("%s", dishesList[j].name); + printf("%f\n", dishesList[j].price); } return 0; From e850062ec25f9bac1ba416253c21799ec7fbdefd Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 11:06:24 +0000 Subject: [PATCH 16/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 1 - 1 file changed, 1 deletion(-) diff --git a/cv2/program.c b/cv2/program.c index 8c25689..f87ad37 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -53,7 +53,6 @@ int main(){ getchar(); //убирает перенос строки с ввода } - int* printOrder = calloc(finalCounter, sizeof(int)); //полная запись всего результата insertSort(dishesList, finalCounter); for(int j = 0; j < finalCounter; j++){ //вывод From 2033291145353cf5a29605aaa70523464ca047fa Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Tue, 9 Nov 2021 11:13:58 +0000 Subject: [PATCH 17/17] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB(=D0=B0)=20=D0=BD=D0=B0=20'cv2/program.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv2/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cv2/program.c b/cv2/program.c index f87ad37..adc0a08 100644 --- a/cv2/program.c +++ b/cv2/program.c @@ -3,7 +3,7 @@ #include #include -#define SIZE 100 +#define SIZE 100 //колличество пицц struct dish{ char name[100];