Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- typedef struct
- {
- char nome[20];
- int dose;
- int hora;
- int caixa;
- }receita;
- int MMC(int num1, int num2) {
- int resto, a, b;
- a = num1;
- b = num2;
- do {
- resto = a % b;
- a = b;
- b = resto;
- } while (resto != 0);
- return ( num1 * num2) / a;
- }
- int comp(const void *P1, const void *P2){ //funรงรฃo qsort
- receita *A = (receita *)P1, *B = (receita *)P2;
- return strcmp(A -> nome, B -> nome);
- }
- int main()
- {
- int cont=1 , dias , mmc = 1 , Ncasos , Nremedios , i , aux;
- int caixaR[200] , doseR[200];
- receita matriz[200];
- scanf("%d" , &Ncasos);
- do
- {
- dias = 0;
- mmc = 1;
- scanf("%d" , &Nremedios);
- aux = Nremedios;
- for(i = 0; i < Nremedios ; i++)
- {
- scanf("%s %d %d %d" , matriz[i].nome , &matriz[i].dose , &matriz[i].hora , &matriz[i].caixa);
- }
- qsort(matriz , Nremedios , sizeof(receita) , comp);
- for(i=0;i<Nremedios;i++)
- {
- mmc = MMC(mmc , matriz[i].hora);
- }
- if(mmc % 24 == 0)
- dias = mmc / 24;
- else
- dias = (mmc/24) + 1;
- for(i = 0; i < Nremedios ; i++)
- {
- doseR[i] = ((mmc/matriz[i].hora)+1) * matriz[i].dose;
- }
- for(i = 0; i < Nremedios ; i++)
- {
- caixaR[i] = doseR[i] / matriz[i].caixa;
- if(doseR[i] % matriz[i].caixa != 0)
- caixaR[i] +=1;
- }
- printf("Caso %d:\nTotal de dias = %d\n" , cont , dias);
- for(i = 0 ; i < Nremedios ; i++)
- {
- printf("%s %d %d\n" , matriz[i].nome , doseR[i] , caixaR[i]);
- }
- cont++;
- for(i = 0 ; i < Nremedios ; i++)
- {
- caixaR[i] = doseR[i] = 0;
- }
- printf("\n");
- }while(cont < Ncasos+1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement