Faça um programa que receba um valor em grau Fahrenheit e imprima o correspondente em Celsius ( C=(f-32.0) * (5.0/9.0))
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
C = (F - 32.0) times 5.09.0
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
  1. Declarar as variáveis como double pra poder guardar frações.
  2. 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
  1. Declarar as variáveis como int, ou seja, sem decimais.
  2. Cuidado: em C, quando você faz 5/9 com inteiros, o resultado é 0 (divisão inteira trunca).
  3. 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 o 5/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;
}

Exercícios relacionados