Advertisement
savovaap_

Untitled

May 15th, 2023
1,022
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.31 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX_ITEMS 100
  5. #define MAX_NAME_LENGTH 20
  6.  
  7. typedef struct {
  8.     char name[MAX_NAME_LENGTH];
  9.     float price;
  10.     int quantity;
  11. } Item;
  12.  
  13. float calculateTotalCost(Item items[], int itemCount) {
  14.     float totalCost = 0;
  15.     int i;
  16.     for (i = 0; i < itemCount; i++) {
  17.         totalCost += items[i].price * items[i].quantity;
  18.     }
  19.     return totalCost;
  20. }
  21.  
  22. int main() {
  23.     Item inventory[MAX_ITEMS] = {
  24.         {"Table", 42.00, 0},
  25.         {"Chair", 13.99, 0},
  26.         {"Cups", 5.98, 0},
  27.         {"Dishes", 21.02, 0}
  28.     };
  29.  
  30.     int numGuests;
  31.     scanf("%d", &numGuests);
  32.  
  33.     char input[MAX_NAME_LENGTH];
  34.     int itemCount = 0;
  35.  
  36.     while (1) {
  37.         scanf("%s", input);
  38.  
  39.         if (strcmp(input, "PARTY!") == 0) {
  40.             break;
  41.         }
  42.  
  43.         int i;
  44.         for (i = 0; i < MAX_ITEMS; i++) {
  45.             if (strcmp(input, inventory[i].name) == 0) {
  46.                 inventory[i].quantity++;
  47.                 break;
  48.             }
  49.         }
  50.  
  51.         if (i == MAX_ITEMS) {
  52.             strcpy(inventory[itemCount].name, input);
  53.             scanf("%f", &inventory[itemCount].price);
  54.             inventory[itemCount].quantity++;
  55.             itemCount++;
  56.         }
  57.     }
  58.  
  59.     float totalCost = calculateTotalCost(inventory, itemCount);
  60.  
  61.     printf("%.2f\n", totalCost);
  62.  
  63.     int requiredTables = (numGuests + 7) / 8;  // Закупени маси
  64.     int requiredChairs = numGuests - (requiredTables * 8);  // Закупени столове
  65.     int requiredDishes = (numGuests + 5) / 6;  // Закупени комплекти с чинии и прибори
  66.  
  67.     for (int i = 0; i < itemCount; i++) {
  68.         if (strcmp(inventory[i].name, "Table") == 0) {
  69.             requiredTables -= inventory[i].quantity;
  70.         } else if (strcmp(inventory[i].name, "Chair") == 0) {
  71.             requiredChairs -= inventory[i].quantity;
  72.         } else if (strcmp(inventory[i].name, "Dishes") == 0) {
  73.             requiredDishes -= inventory[i].quantity;
  74.         }
  75.     }
  76.  
  77.     if (requiredTables > 0) {
  78.         printf("%d Table\n", requiredTables);
  79.     }
  80.     if (requiredChairs > 0) {
  81.         printf("%d Chair\n", requiredChairs);
  82.     }
  83.     if (requiredDishes > 0) {
  84.         printf("%d Dishes\n", requiredDishes);
  85.     }
  86.  
  87.     return 0;
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement