Update cv2/program.c
This commit is contained in:
parent
ecfb9cd290
commit
40baab05f7
@ -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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user