aprendiz5 0 Denunciar post Postado Novembro 24, 2010 alguem consegue ajudar? quando eu digito um valor que não é multiplo do valor do combustivel, ele continuaoloop epassa do valor pago alguem consegue ajudaR? ex:se eu quero colocar 10 (reais) e quero gasolina que custa 3.00(reais o litro) ele soma 3reais no contatorcadavezquepassapelo loop, porem quando chegano 9eleidentificaqueé menor do que 10então continua, então elesoma 3 e acaba ficando 12reaise 4litros sendo certo 10reais e 3,33litros. alguem manja o que faço? Leonardo G (FIT) #include <stdio.h> #include <stdlib.h> main() { int tip; float cont, lit, qtdreais, vlgas, vlalc, resto; vlgas=3.00; vlalc=2.00; cont=0.00; lit=0.00; { printf("\nSeja Bem Vindo ao posto da esquina.\n"); printf("\nQuantos reais quer colocar?\n\n"); scanf("%f",&qtdreais); printf("\nAlcool 2.00L ou Gasolina 3.00L: Digite [1]A [2]G\n\n"); scanf("%i",&tip); if(tip==1) { while(cont<qtdreais) { cont=cont+vlalc; lit=lit+1.00; printf("\n%.2f Reais",cont);printf(" %.2f Litros\n",lit); } printf("\n******************************************************\n"); printf("***** Foram colocados %.2fL, Valor total %.2f$. *****\n",lit,cont); printf("******************************************************\n\n\n"); lit=0.00; cont=0.00; } else { if(tip==2) { while(cont<qtdreais) { resto=qtdreais-cont; cont=cont+vlgas; lit=lit+1.00; printf("\n%.2f Reais",cont);printf(" %.2f Litros\n",lit); } printf("\n******************************************************\n"); printf("***** Foram colocados %.2fL, Valor total %.2f$. *****\n",lit,cont); printf("******************************************************\n\n\n"); lit=0.00; cont=0.00; } else { printf("\nN%co temos esse contustivel\n",-57); } } } system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Felipe_Volpatto 1 Denunciar post Postado Novembro 24, 2010 Bom dia, tudo certo? Cara, bem rapidinho. Tu tava fazendo um loop ali, mas ele é totalmente desnecessário. Faça um cálculo direto, sem loop. Eu deixei comentado o seu código e apenas pus 2 linhas a mais em cada opção. #include "stdafx.h" #include "stdlib.h" void main() { int tip = 0; float cont, lit, qtdreais, vlgas, vlalc, resto = 0; vlgas=3.00; vlalc=2.00; cont=0.00; lit=0.00; { printf("\nSeja Bem Vindo ao posto da esquina.\n"); printf("\nQuantos reais quer colocar?\n\n"); scanf("%f",&qtdreais); fflush(stdin); printf("\nAlcool 2.00L ou Gasolina 3.00L: Digite [1]A [2]G\n\n"); scanf("%i",&tip); fflush(stdin); if(tip==1) { /*while(cont < qtdreais) { cont = cont + vlalc; lit ++; lit = qtdreais / vlalc; printf("\n%.2f Reais",cont);printf(" %.2f Litros\n",lit); }*/ lit = qtdreais / vlalc; printf("\n%.2f Reais",qtdreais);printf(" %.2f Litros\n",lit); printf("\n******************************************************\n"); printf("***** Foram colocados %.2fL, Valor total %.2f$. *****\n",lit,cont); printf("******************************************************\n\n\n"); lit=0.00; cont=0.00; } else { if(tip==2) { /*while(cont<qtdreais) { resto = qtdreais - cont; cont = cont + vlgas; lit = lit + 1.00; printf("\n%.2f Reais",cont); printf(" %.2f Litros\n",lit); }*/ lit = qtdreais / vlalc; printf("\n%.2f Reais",qtdreais);printf(" %.2f Litros\n",lit); printf("\n******************************************************\n"); printf("***** Foram colocados %.2fL, Valor total %.2f$. *****\n",lit,cont); printf("******************************************************\n\n\n"); lit=0.00; cont=0.00; } else { printf("\nN%co temos esse contustivel\n",-57); } } } getchar(); } Dividindo o quanto tu quer pagar pelo valor do combustível já lhe trará a quantidade de litros. P.S: Agora daria para fazer um loop com um "Gostaria de calcular novamente?" algo do tipo! ^_^ Espero ter ajudado. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
aprendiz5 0 Denunciar post Postado Novembro 24, 2010 esse que é o problema, pois o professor quer um loop mostrado oque acontece dentro dele. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Novembro 24, 2010 #include <stdio.h> #include <stdlib.h> int main(void){ float grana = 10.0; float preco = 3.0; int litro = 0; while(1){ printf("Grana: %.2f\n", grana); if (grana >= preco) { litro++; grana-=preco; } else break; } printf("Litros: %d", litro); return 0; } isso? []s Compartilhar este post Link para o post Compartilhar em outros sites
aprendiz5 0 Denunciar post Postado Novembro 24, 2010 quasse isso, porem quando tive 1 real ele não pode acrescentar 1litro e sim 0,33 litros. esse é meu problema. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Novembro 24, 2010 e assim: #include <stdio.h> #include <stdlib.h> int main(void){ float grana = 11.0; float preco = 3.0; float litro = 0.0; while(1){ if (grana > 0.0) printf("Grana: %.2f\n", grana); if (grana >= preco) { litro++; grana-=preco; } else if (grana > 0.0){ litro += grana/preco; grana -= preco; } else break; } printf("Litros: %.2f", litro); //ou se preferir ter ctz kkk: //printf("Litros: %f", litro); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
aprendiz5 0 Denunciar post Postado Novembro 24, 2010 Vlws Mano..Resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Novembro 24, 2010 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites