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

Fazer programa C para desenvolver conversor Fahrenheit


Kalid Carvalho

Pergunta

Boa tarde a todos, então estou fazer um exercicio escolar, porem me deparei com um erro e bati um pouco de cabeça e não encontrei a solução..

o Exercicio é assim:

Fazer um programa em "C" que pergunte um valor em graus Fahrenheit e
imprime no vídeo o correspondente em graus Celsius usando as fórmulas que
seguem.
a) Usar uma variável double para ler o valor em Fahrenheit e a fórmula
C=(f-32.0) * (5.0/9.0).
b) Usar uma variável int para ler o valor em Fahrenheit e a fórmula
C=(f-32)*(5/9).
 

Ok o meu codigo está assim: 

#include <stdio.h>
#include <stdlib.h>

int main(){

    float C;
    int F,c;

    printf("Informe um valor de Fahrenheit para converter para Celsius: ");
    scanf("%d",&F);

        C = (F - 32.0) * (5.0 / 9.0);
        c = (F - 32) * (5 / 9);

    printf("Celsius(Valor decimal): %2.f\n",C);
    printf("Celsius(Valor inteiro): %d\n",c);

    system("PAUSE");
    return 0;
}

Porém o resultado sai assim:

Capturar.PNG.10e3a71a018ba982afca7677c15a8004.PNG

alguém pode analisar meu codigo e ve onde eu estou pecando, e por que não efetua o calculo e da o resultado igual o valor decimal? rs

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Fórmula Celcius para Fahrenheit
    
(56 °C × 9/5) + 32 = 132,8 °F


Fórmula Fahrenheit para Celcius
    
(56 °F − 32) × 5/9 = 13,333 °C

mas se for apenas o valor inteiro, deveria imprimir correto ...   13

 printf("Celsius(Valor inteiro): %d\n",c);

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Oie, Acho que o dono dessa dúvida não vai ver a resposta, mas talvez alguém que procure solução...
Quando colocamos dois parênteses assim

C = (F - 32) * (5 / 9);

O programa não roda porque não sabe qual deve executar primeiro.

Por isso o modo que deve ser colocado é:

C= (F - 32) * 5 / 9;

 

Exemplo.png

Link para o comentário
Compartilhar em outros sites

  • 0

O divisão entre inteiro tem outro inteiro com resultado.

 

Se o dividendo (a) é menor absoluto que o divisor (b), o quociente (c) é 0.

 

Em 27/11/2019 em 18:26, Kalid Carvalho disse:

c = (F - 32) * (5 / 9);

 

Nessa expressão a operação (5/9) retorna (0), todo valor multiplicado por 0 produz 0. Logo, c= 0

 

Em 27/11/2019 em 18:26, Kalid Carvalho disse:

C = (F - 32.0) * (5.0 / 9.0);

c = (F - 32) * (5 / 9);

 

Para obter a parte inteira é suficiente atribuição, pois o corte da parte fracional acontece na implementação dos tipos.

#include <stdio.h>
#include <stdlib.h>
int main(){
    float C;
    int F,c;
    printf("Informe um valor de Fahrenheit para converter para Celsius: ");
    scanf("%d",&F);
        C = (F - 32.0) * (5.0 / 9.0);
        c = C;
    printf("Celsius(Valor decimal): %f\n",C);
    printf("Celsius(Valor inteiro): %d\n",c);
    system("PAUSE");
    return 0;
}

 

Editado por britivaldo
Ok?
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...