Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.59 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. typedef struct
  5. {
  6.     char product_name[25];
  7.     double price;
  8. } Product;
  9.  
  10. void ordenation(Product array[], int i, int j, Product aux, int tamanho)
  11. {
  12.     if (i != tamanho - 1)
  13.     {
  14.         if (j < tamanho)
  15.         {
  16.             if (array[i].price > array[j].price)
  17.             {
  18.                 aux = array[i];
  19.                 array[i] = array[j];
  20.                 array[j] = aux;
  21.             }
  22.             ordenation(array, i, ++j, aux, tamanho);
  23.         }
  24.         ordenation(array, ++i, j, aux, tamanho);
  25.     }
  26. }
  27.  
  28. int main()
  29. {
  30.     double money, products_sum = 0; /* products_sum vai ser a soma dos preços dos produtos para verificar até qual o usuário pode comprar */
  31.     int number_of_items, i, count = 0;
  32.  
  33.     scanf("%lf\n", &money);
  34.     scanf("%d\n", &number_of_items);
  35.  
  36.     Product products[number_of_items];
  37.  
  38.     /* for (i = 0; i < number_of_items; i++)
  39.     {
  40.         scanf("%s %lf", products[i].product_name, &products[i].price);
  41.     } */
  42.  
  43.     ordenation(products, 0, 0, products[0], number_of_items);
  44.  
  45.     for (i = 0; i < number_of_items; i++)
  46.     {
  47.         printf("%s %.2lf\n", products[i].product_name, products[i].price);
  48.     }
  49.  
  50.     for (i = 0; i < number_of_items; i++)
  51.     {
  52.         if ((money - products_sum) > 0)
  53.         {
  54.             products_sum += products[i].price;
  55.             ++count;
  56.         }
  57.         else
  58.         {
  59.             for (i = 0; i < count; i++)
  60.             {
  61.                 printf("%s %.2lf\n", products[i].product_name, products[i].price);
  62.             }
  63.         }
  64.     }
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement