diff --git a/cv2/program.c b/cv2/program.c new file mode 100644 index 0000000..931c94f --- /dev/null +++ b/cv2/program.c @@ -0,0 +1,64 @@ +#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; +}