cv2
This commit is contained in:
parent
6750985a85
commit
0f54b1b1f6
64
cv2/program.c
Normal file
64
cv2/program.c
Normal file
@ -0,0 +1,64 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// Š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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user