Caiolug Posted February 15, 2012 Report Share Posted February 15, 2012 (edited) char valor; valor == 2.59; printf("O valor do Combustivel por litros equivale a %f por litro.", valor);A minha duvida é simples : Porque que quando eu compilo e executo o programa, o valor em vez de ser 2,59 é +/- assim : 0,000000000O que pode estar errado? era pra ser 2,59 na frase.muito obrigado =D Edited February 17, 2012 by Durub Adicionar tags code [Durub] Quote Link to comment Share on other sites More sharing options...
0 Binder Posted February 15, 2012 Report Share Posted February 15, 2012 (edited) Opa, ai tem um erro: Você declarou a variavel "valor" sendo como char(apenas de 1 caracter).E está lendo no printf como float(%f).São coisas diferentes. Você precisa definir a variavel valor como float. Faça assim:#include <stdio.h> #include <stdlib.h> int main(){ float valor; valor = 2.59; printf("O valor do Combustivel por litros equivale a %f por litro.\n\n", valor); system("pause"); }//main O Resultador seria : 2.590000 Agora se quiser,mostrar apenas duas casas depois da vírgula, faça assim: printf("O valor do Combustivel por litros equivale a %.2f por litro.\n\n", valor); Edited February 15, 2012 by Binder Quote Link to comment Share on other sites More sharing options...
0 Caiolug Posted February 15, 2012 Author Report Share Posted February 15, 2012 Oxi, não sei o que eu fiz, mas o valor esta dando 3 quando eu compilo O.O olha só: #include<iostream> #include<cstdlib> using namespace std; int codigo,numero,pagamento; float resultado; char combustivel[5]; int main(){ float valor; printf("Por favor, insira o codigo do combustivel desejado:\n\n"); scanf("%d", &codigo); if(codigo == 1){ valor = 2.95; strcpy(combustivel,"Etanol"); printf("O combustivel escolhido foi o %s \n", combustivel); printf("\nO Valor do %s por litro equivale a %f reais.\n\n",combustivel,valor); system("PAUSE");} else{ printf("\nCodigo Invalido\n\n"); system("PAUSE");} } Quote Link to comment Share on other sites More sharing options...
0 Binder Posted February 15, 2012 Report Share Posted February 15, 2012 (edited) Opa, a princípio testei aqui e está funcionando normal.Apenas percebi algumas coisas:1) Você declarou as váriaveis fora do main, porque?#include<iostream> #include<cstdlib> using namespace std; int codigo,numero,pagamento; float resultado; char combustivel[5]; int main(){ float valor; ..... 2) Não está utilizando as variaveis "numero", "pagamento", "resultado", a não ser que vai continuar o programa...Caso contrário não tem necessidade de declarar. 3) Agora na impressão do resultado, perceba os seguintes códigos: Caso queira mostrar 2.950000, Faça Assim: printf("\nO Valor do %s por litro equivale a %f reais.\n\n",combustivel,valor); Caso queira mostrar 2.95, Faça Assim: printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor);Agora, se colocar %.1f, irá mostrar 3.0 o "valor".Após o .(ponto) você sempre irá definir quantas casas decimais quer mostrar depois da vírgula. Edited February 15, 2012 by Binder Quote Link to comment Share on other sites More sharing options...
0 Caiolug Posted February 15, 2012 Author Report Share Posted February 15, 2012 Opaaaa, muito obrigadoooo deu certo, aa, e respondendo sua pergunta, vai continuar sim, isso é um programinha valendo 1 ponto pra faculdade de Ciencias da Computação, to na primeira semana de aula hehehehe... Muito obrigado mesmo. Qualquer coisa eu te encho o saco denovo , hehehehehee *-* Quote Link to comment Share on other sites More sharing options...
0 Caiolug Posted February 15, 2012 Author Report Share Posted February 15, 2012 Olha, para finalizar meu programa, só esta acontecendo mais um problema, o resultado da divisão sempre da 0, já tentei de tudo, esses %d %f nada deu certo, já mudei a variavel resultado pra int, pra float, e nada deu certo se puder me ajudar nessa também eu agradeço muito . #include<iostream> #include<cstdlib> using namespace std; int main(){ int codigo,numero,pagamento; float valor; char combustivel[15]; int resultado = pagamento/valor; printf("Por favor, insira o codigo do combustivel desejado:\n\n"); scanf(" %d", &codigo); if(codigo == 1){ valor = 2.95; strcpy(combustivel,"Etanol"); printf("\nO combustivel escolhido foi o %s \n", combustivel); printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor); printf("\n Por favor, digite o valor que o cliente deseja abastecer para converter o valor em litros: "); scanf("\n %d", &pagamento); printf("\n O pagamento do cliente equivale a %d litros de %s ",resultado,combustivel); system("PAUSE");} else{ printf("\nCodigo Invalido\n\n"); system("PAUSE");} } Quote Link to comment Share on other sites More sharing options...
0 Binder Posted February 15, 2012 Report Share Posted February 15, 2012 (edited) Opa, você cometeu um erro grave: int main(){ int codigo,numero,pagamento; float valor; char combustivel[15]; int resultado = pagamento/valor; // aqui está o erro Após o "main", você está declarando as suas váriaveis , para poder utilizar durante o programa, sendo assim você não tem valores ainda, dentro delas. O cálculo deve ser após as variáveis conter "valores". Na minha opinião, acho que você deve declarar as variaveis "resultado" ,"pagamento", "valor" como float. Pois podem dar resultados "quebrados"(2.40,2.59...) Eu faria assim: #include<iostream> #include<cstdlib> using namespace std; int main(){ int codigo,numero; float valor,pagamento,resultado; char combustivel[15]; printf("Por favor, insira o codigo do combustivel desejado:\n\n"); scanf(" %d", &codigo); if(codigo == 1){ valor = 2.95; strcpy(combustivel,"Etanol"); printf("\nO combustivel escolhido foi o %s \n", combustivel); printf("\nO Valor do %s por litro equivale a %.2f reais.\n\n",combustivel,valor); printf("\n Por favor, digite o valor que o cliente deseja abastecer para converter o valor em litros: "); scanf("\n %f", &pagamento); resultado = pagamento/valor; printf("\n O pagamento do cliente equivale a %.2f litros de %s\n\n",resultado,combustivel); system("PAUSE");} else{ printf("\nCodigo Invalido\n\n"); system("PAUSE");} } Edited February 15, 2012 by Binder Quote Link to comment Share on other sites More sharing options...
0 Caiolug Posted February 15, 2012 Author Report Share Posted February 15, 2012 (edited) Opa, deu super certo, agora creio que consigo me virar no resto do programa, muito obrigado por toda sua explicação. Edited February 15, 2012 by Caiolug Quote Link to comment Share on other sites More sharing options...
Question
Caiolug
A minha duvida é simples : Porque que quando eu compilo e executo o programa, o valor em vez de ser 2,59 é +/- assim : 0,000000000
O que pode estar errado? era pra ser 2,59 na frase.
muito obrigado =D
Edited by DurubAdicionar tags code [Durub]
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.