#include #include #include #define MAX_NAME_LENGTH 101 #define MAX_ITEMS 100 typedef struct { char name[MAX_NAME_LENGTH]; double price; } Pizza; // Функція для порівняння піц за ціною і назвою int compare(const void *a, const void *b) { Pizza *pizzaA = (Pizza *)a; Pizza *pizzaB = (Pizza *)b; if (pizzaA->price != pizzaB->price) { return (pizzaA->price > pizzaB->price) - (pizzaA->price < pizzaB->price); } return strcmp(pizzaA->name, pizzaB->name); } int main() { Pizza menu[MAX_ITEMS]; int count = 0; // Введення назви і ціни while (1) { Pizza pizza; // Читання назви піци if (!fgets(pizza.name, MAX_NAME_LENGTH, stdin)) break; pizza.name[strcspn(pizza.name, "\n")] = '\0'; // Видалення нового рядка // Читання ціни піци if (scanf("%lf", &pizza.price) != 1) break; getchar(); // Споживання залишку нового рядка після ціни // Додавання піци до масиву menu[count++] = pizza; // Перевірка на межі масиву if (count >= MAX_ITEMS) break; } // Сортування піц за ціною і назвою qsort(menu, count, sizeof(Pizza), compare); // Виведення відсортованого меню for (int i = 0; i < count; i++) { printf("%s\n%.6f\n", menu[i].name, menu[i].price); } return 0; }