Faça um programa que receba um valor em grau Fahrenheit e imprima o correspondente em Celsius (
* (5.0/9.0))
a. Usar variáveis do tipo double;
b. Usar variáveis do tipo int.
a. Usar variáveis do tipo double;
b. Usar variáveis do tipo int.
Passo 1
Beleza! O exercício pede que a gente escreva um programa em C que receba uma temperatura em graus Fahrenheit e converta para Celsius usando a fórmula
Você vai fazer duas versões:
a) usando variáveis do tipo double (pra guardar casas decimais)
b) usando variáveis do tipo int (só números inteiros)
Para isso a gente vai precisar entender:
- como ler e escrever valores em C
- diferenças entre variáveis double e int
- como funciona divisão inteira vs. divisão real
Passo 2
Versão com double
- Declarar as variáveis como
double
pra poder guardar frações. - Usar a fórmula exatamente com valores em ponto flutuante.
Exemplo de código em C:
#include <stdio.h>
int main() {
double f, c; // variáveis em ponto flutuante
printf("Digite Fahrenheit: ");
scanf("%lf", &f); // lê um double
c = (f - 32.0) * (5.0 / 9.0); // aplica a fórmula
printf("Temperatura em Celsius = %.2f\n", c);
return 0;
}
Explicando a teoria:
double
armazena números com casas decimais.(5.0/9.0)
faz divisão real, resultando em ≈0.5555…- Multiplicando por esse valor você converte corretamente.
Passo 3
Versão com int
- Declarar as variáveis como
int
, ou seja, sem decimais. - Cuidado: em C, quando você faz
5/9
com inteiros, o resultado é 0 (divisão inteira trunca). - Pra minimizar o erro, multiplica primeiro e depois divide:
(F - 32) * 5 / 9
.
Código em C:
#include <stdio.h>
int main() {
int f, c;
printf("Digite Fahrenheit (int): ");
scanf("%d", &f);
c = (f - 32) * 5 / 9; // faz a conta em inteiro
printf("Celsius (int) = %d\n", c);
return 0;
}
Teoria aplicada:
- Variáveis
int
só guardam números inteiros, sem parte decimal. - Na expressão
(f - 32) * 5 / 9
, primeiro faz(f - 32) * 5
(um número inteiro) e só depois divide por 9, evitando o5/9 = 0
. - Mesmo assim, o resultado final fica truncado (por exemplo, 37.8 vira 37).
Resposta
a) Código usando
double
:#include <stdio.h>
int main() {
double f, c;
printf("Digite Fahrenheit: ");
scanf("%lf", &f);
c = (f - 32.0) * (5.0 / 9.0);
printf("Temperatura em Celsius = %.2f\n", c);
return 0;
}
b) Código usando
int
:#include <stdio.h>
int main() {
int f, c;
printf("Digite Fahrenheit (int): ");
scanf("%d", &f);
c = (f - 32) * 5 / 9;
printf("Celsius (int) = %d\n", c);
return 0;
}