Caiolug Postado Fevereiro 15, 2012 Denunciar Share Postado Fevereiro 15, 2012 (editado) 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 Editado Fevereiro 17, 2012 por Durub Adicionar tags code [Durub] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Binder Postado Fevereiro 15, 2012 Denunciar Share Postado Fevereiro 15, 2012 (editado) 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); Editado Fevereiro 15, 2012 por Binder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Caiolug Postado Fevereiro 15, 2012 Autor Denunciar Share Postado Fevereiro 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");} } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Binder Postado Fevereiro 15, 2012 Denunciar Share Postado Fevereiro 15, 2012 (editado) 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. Editado Fevereiro 15, 2012 por Binder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Caiolug Postado Fevereiro 15, 2012 Autor Denunciar Share Postado Fevereiro 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 *-* Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Caiolug Postado Fevereiro 15, 2012 Autor Denunciar Share Postado Fevereiro 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");} } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Binder Postado Fevereiro 15, 2012 Denunciar Share Postado Fevereiro 15, 2012 (editado) 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");} } Editado Fevereiro 15, 2012 por Binder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Caiolug Postado Fevereiro 15, 2012 Autor Denunciar Share Postado Fevereiro 15, 2012 (editado) Opa, deu super certo, agora creio que consigo me virar no resto do programa, muito obrigado por toda sua explicação. Editado Fevereiro 15, 2012 por Caiolug Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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
Editado por DurubAdicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.