Jump to content
Fórum Script Brasil
  • 0

Fazer programa C para desenvolver conversor Fahrenheit


Kalid Carvalho
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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;
}

 

Edited by britivaldo
Ok?
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...