#include #include #include #include #define LINESIZE 100 struct pizza { float price; char name[LINESIZE]; }; int compare_pizza(const void *a, const void *b) { const struct pizza *pizza1 = (const struct pizza *)a; const struct pizza *pizza2 = (const struct pizza *)b; if (pizza1->price < pizza2->price) return -1; if (pizza1->price > pizza2->price) return 1; return strcmp(pizza1->name, pizza2->name); } int main(){ struct pizza menu[LINESIZE]; int count = 0; char vstup1[LINESIZE]; char vstup2[LINESIZE]; while (count < LINESIZE) { if (fgets(vstup, LINESIZE, stdin)) { vstup1[strcspn(vstup, "\n")] = '\0'; if (strlen(vstup) == 0) { break; } } else { break; } if (fgets(vstup, LINESIZE, stdin)) { vstup2[strcspn(vstup, "\n")] = '\0'; if (strlen(vstup) == 0) { break; } float cislo = strtof(vstup2, NULL); } else { break; } if(cislo != 0){ menu[count].price = cislo; strcpy(menu[count].name, vstup1); } count++; } qsort (menu, count, sizeof(struct pizza), compare_pizza); for(int i = 0; i < count;i++){ printf("%s\n", menu[i].name); printf("%f\n", menu[i].price); } return 0; }