Ir para conteúdo
Fórum Script Brasil
  • 0

Por quê só aparece 0.0000 nessa conta?


Guest Gusth Shields

Pergunta

Guest Gusth Shields

Estou estudando linguagem C, peguei uma apostila na internet e tem uns exercícios nela que resolvi fazer para treinar, até que cheguei nesse exercício aqui:

Exercício 1.6: Dada uma temperatura em graus Fahrenheit, informe o valor correspondente em graus Celsius. [Dica: C = (F-32)*(5/9)].

Então fiz esse código:

#include <stdio.h>
#include <conio.h>
#include <math.h>
main() {
              float fahre, celsius;
              clrscr();
              printf("\n Informe o valor em Fahrenheit:");
              scanf("%f", &fahre);
              celsius = (fahre-32)*(5/9);
              printf("\n O valor em Celsius é: %f", celsius);
              getch();
            }

Qualquer valor que eu digito no programa aparece como resposta "O valor em Celsius é: 0.000000".

O que está errado no código? E qual seria o código correto?

Estou usando o compilador Turbo C, creio eu que seja 2.01

Obrigado desde já,

Shields.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main(int argc, char *argv[])

{

float F,C;

printf("\n Informe o valor em Fahrenheit: ");

scanf("%0.2f", &F);

C=(5*((F-32)/9)); //a dica que você colocou estava discriminada de forma errada.

printf("\n O valor em Celsius = %0.2f \n\n\n", C);

system("PAUSE");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Gusth Shields

Eu estou começando então não intendi quase nada do que você disse ae, mas valeu de qualquer jeito pela sua dica de que o jeito como coloquei para fazer a conta estava errado.

Eu testei numa lan house aqui perto e deu certo o mesmo código, ai fiz vários testes aqui em casa e cheguei na conclusão de que quando ele divide um numero por outro maior, ele sempre me retorna o valor 0. Não sei o porque, portanto se alguém souber ae me fala ;].

Outra coisa que reparei é que na lan house o Turbo C identificava o teclado como português, aqui em casa ele identifica como inglês não sei como mudar, por exemplo o "ç" aqui escreve ";" dentro do Turbo C.

Mas deu certo meu código, eu coloquei ele assim:

celsius = (fahre-32)*0.5555555;

É a mesma coisa nesse código, mas pelo que vejo vou ter problemas no futuro, então se alguém souber como configurar ae me diga.

Obrigado,

Shields.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Diogo --

o recomendavel é não usar acentos num programa em C para iniciante, não se preocupe com isso agora. o código do lsy_007 está perfeito, tirando o fato de quê no scanf ele utilizou %0.2f o que fazia o programa retornar sempre um mesmo valor, ao colocar somente %f, se alguém souber o motivo avise...

e eu não entendi qual sua dúvida... quando se divide um número menor por um maior o resultado sempre é zero? :huh:

Link para o comentário
Compartilhar em outros sites

  • 0

nesta parte do codigo o problema esta no "(5/9)"

celsius = (fahre-32)*(5/9);
o compilador le 5 e 9 como numeros inteiros (por que eles não foram declarados) então ele divide numeros inteiros 5/9 e retorna o resultado "0.555" sem o resto, que fica só "0" então sua conta fica
celsius = (fahre-32)*( 0 )
qualquer numero multiplicado por 0 é igual 0, sua conta retornará sempre 0 então para fazer com que o compilador entenda 5 e 9 como reais (float) e retorne também numeros após a virgula coloque assim
celsius = (fahre-32)*(5.0/9.0);

espero ter esclarecido sua duvida

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...