#include <stdio.h>float V; // V= aposta R$char N[7], M[7]; // N = numero jogado; M = numero sorteadoint entrada();void resultado();int main(){ while(entrada()){ char *pt_N, *pt_M, *pt_NE, *pt_ME; unsigned int i, match; pt_N = N; pt_M = M; // Ponteiros para o fim do conteúdo das strings (NULL) for (pt_NE = N; *pt_NE!=NULL; pt_NE++); for (pt_ME = M; *pt_ME!=NULL; pt_ME++); // Se tiver menos de 4 caracteres, complemente com zero i = (pt_NE-pt_N)+1; // Tamanho, com NULL incluido if (i<5) { match = 5-i; while(i--) *(pt_N+(match+i)) = *(pt_N+i); // copia para proximas localidades while(match--) *(pt_N+match) = '0'; // Preenche anteriores com zero. pt_NE = N+4; // atualiza pt_NE } i = (pt_ME-pt_M)+1; // Tamanho, com NULL incluido if (i<5) { match = 5-i; while(i--) *(pt_M+(match+i)) = *(pt_M+i); // copia para proximas localidades while(match--) *(pt_M+match) = '0'; // Preenche anteriores com zero. pt_ME = M+4; // atualiza pt_ME } // Encontra algarismos iguais nos 4 ultimos. match = 0; for(i=1;i<5;i++){ if (*(pt_NE-i) == *(pt_ME-i)) match++; else break; } if (match == 2) resultado(50); else if (match == 3) resultado(500); else if (match == 4) resultado(3000); else { // procuramos o bicho unsigned int i_N, i_M; // Transformamos os dois ultimos algarismos em um inteiro for (; (pt_NE-2) > pt_N; pt_N++) *pt_N = '0'; for (; (pt_ME-2) > pt_M; pt_M++) *pt_M = '0'; // Só restarão os dois ultimos algarismos != 0 // Agora, dividimos por 4 e somamos 1 se houver resto. i_N = atoi(N)/4; i_M = atoi(M)/4; if (i_N%4) i_N++; if (i_M%4) i_M++; // Pronto, podemos comparar if (i_N == i_M) resultado(16); // bicho else resultado(0); // nada } // Proximo... }}int entrada(){ // retorna zero se entrada for 0 0 0 // Entrada: <aposta R$> <nnumero jogado> <numero sorteado> // Final da entrada: 0 0 0 scanf("%f %s %s", &V, N, M); if ((V==0)&&(atoi(N)==0)&&(atoi(M)==0)) return 0; return 1;}void resultado(int fator) { printf("%.2f\n", fator*V); }