diff --git a/du2/program.c b/du2/program.c index f8b787d..46cf1fc 100644 --- a/du2/program.c +++ b/du2/program.c @@ -41,17 +41,27 @@ int read_pizza(struct pizza *item) { return 1; } -//porovnanie pre qsort -int compare_pizza(const void *a, const void *b){ - const struct pizza *pa = (const struct pizza *)a; - const struct pizza *pb = (const struct pizza *)b; - - if (pa->price < pb->price) return -1; - if (pa->price > pb->price) return 1; - - return strcmp(pa->name, pb->name); +// porovnanie dvoch položiek +int greater(struct pizza *a, struct pizza *b) { + if (a->prize > b->prize) + return 1; + if (a->prize < b->prize) + return 0; + return strcmp(a->name, b->name) > 0; } +// sort +void sort_pizzas(struct pizza *list, int count) { + for (int i = 0; i < count - 1; i++) { + for (int j = 0; j < count - i - 1; j++) { + if (greater(&list[j], &list[j + 1])) { + struct pizza tmp = list[j]; + list[j] = list[j + 1]; + list[j + 1] = tmp; + } + } + } +} int main() { struct pizza list[MAXITEMS]; @@ -68,7 +78,7 @@ int main() { } //triedenie - qsort(list, count, sizeof(struct pizza), compare_pizza); + sort_pizzas(list, count); //vypis listka for (int i = 0; i < count; i++){