Advertisement
VitorMDias

receita

Sep 2nd, 2015
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6.  
  7. typedef struct
  8. {
  9.     char nome[20];
  10.     int  dose;
  11.     int  hora;
  12.     int  caixa;
  13. }receita;
  14.  
  15.  
  16. int MMC(int num1, int num2) {
  17.  
  18.     int resto, a, b;
  19.  
  20.     a = num1;
  21.     b = num2;
  22.  
  23.     do {
  24.         resto = a % b;
  25.  
  26.         a = b;
  27.         b = resto;
  28.  
  29.     } while (resto != 0);
  30.  
  31.     return ( num1 * num2) / a;
  32. }
  33.  
  34. int comp(const void *P1, const void *P2){       //funรงรฃo qsort
  35.     receita *A = (receita *)P1, *B  = (receita *)P2;
  36.     return strcmp(A -> nome, B -> nome);
  37. }
  38.  
  39. int main()
  40. {
  41.     int cont=1 , dias , mmc = 1 , Ncasos , Nremedios , i , aux;
  42.     int caixaR[200] , doseR[200];
  43.     receita matriz[200];
  44.     scanf("%d" , &Ncasos);
  45.     do
  46.     {
  47.         dias = 0;
  48.         mmc = 1;
  49.         scanf("%d" , &Nremedios);
  50.         aux = Nremedios;
  51.         for(i = 0; i < Nremedios ; i++)
  52.         {
  53.             scanf("%s %d %d %d" , matriz[i].nome , &matriz[i].dose , &matriz[i].hora , &matriz[i].caixa);
  54.         }
  55.         qsort(matriz , Nremedios , sizeof(receita) , comp);
  56.         for(i=0;i<Nremedios;i++)
  57.         {
  58.             mmc = MMC(mmc , matriz[i].hora);
  59.         }
  60.         if(mmc % 24 == 0)
  61.             dias = mmc / 24;
  62.         else
  63.             dias = (mmc/24) + 1;
  64.        
  65.         for(i = 0; i < Nremedios ; i++)
  66.         {
  67.             doseR[i] = ((mmc/matriz[i].hora)+1) *  matriz[i].dose;
  68.         }
  69.         for(i = 0; i < Nremedios ; i++)
  70.         {
  71.             caixaR[i] = doseR[i] / matriz[i].caixa;
  72.             if(doseR[i] % matriz[i].caixa != 0)
  73.                 caixaR[i] +=1;
  74.         }
  75.        
  76.        
  77.        
  78.        
  79.        
  80.         printf("Caso %d:\nTotal de dias = %d\n" , cont , dias);
  81.         for(i = 0 ; i < Nremedios ; i++)
  82.         {
  83.             printf("%s %d %d\n" , matriz[i].nome , doseR[i] , caixaR[i]);
  84.         }
  85.         cont++;
  86.         for(i = 0 ; i < Nremedios ; i++)
  87.         {
  88.             caixaR[i] = doseR[i] = 0;
  89.         }
  90.         printf("\n");
  91.     }while(cont < Ncasos+1);
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement