Update cv2/program.c

This commit is contained in:
Viktor Daniv 2024-10-07 12:04:52 +00:00
parent ecfb9cd290
commit 40baab05f7

View File

@ -0,0 +1,56 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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;
}