#include #include #include // Štruktúra pre položku v menu typedef struct { char nazov[101]; // Názov pizze double cena; // Cena pizze } Pizza; // Funkcia na porovnanie dvoch položiek (použije sa pre funkciu qsort) int porovnaj(const void *a, const void *b) { Pizza *pizzaA = (Pizza *)a; Pizza *pizzaB = (Pizza *)b; // Porovnanie podľa ceny if (pizzaA->cena < pizzaB->cena) return -1; if (pizzaA->cena > pizzaB->cena) return 1; // Ak sú ceny rovnaké, porovnáme abecedne názvy return strcmp(pizzaA->nazov, pizzaB->nazov); } int main() { Pizza menu[100]; // Predpokladáme, že maximálny počet položiek je 100 int pocet = 0; char nazov[101]; double cena; // Načítanie položiek z vstupu while (1) { // Načítaj názov pizze if (fgets(nazov, sizeof(nazov), stdin) == NULL) { break; // Koniec vstupu } // Odstráň novú čiaru na konci názvu nazov[strcspn(nazov, "\n")] = '\0'; // Načítaj cenu pizze if (scanf("%lf", &cena) != 1) { break; // Neplatný vstup (nesprávna cena alebo koniec vstupu) } // Vyčistenie vstupného bufferu (prečítať zvyšné znaky) getchar(); // Uloženie položky do zoznamu strcpy(menu[pocet].nazov, nazov); menu[pocet].cena = cena; pocet++; } // Zoradenie položiek qsort(menu, pocet, sizeof(Pizza), porovnaj); // Výpis zoradeného menu for (int i = 0; i < pocet; i++) { printf("%s\n%.6f\n", menu[i].nazov, menu[i].cena); } return 0; }