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