Ejercicio 04 — Leer temperatura en Celsius y convertir a Fahrenheit
Dificultad: amarillo · Módulo 01 (Variables, tipos y entrada/salida)
Enunciado
Leer temperatura en Celsius y convertir a Fahrenheit (F = C * 9/5 + 32).
Diagrama de flujo

Cómo se resuelve
Una conversión de unidades que existe solo para enseñarte la trampa de la división entera.
- Se lee un
float celsiusconscanf("%f", &celsius). - La fórmula es
F = C · 9/5 + 32. En el código:celsius * (9.0f / 5.0f) + 32.0f.- La clave está en
9.0f / 5.0f. Si escribes9 / 5(dos enteros), C calcula división entera y da1, no1.8. Toda la conversión saldría mal. - Basta con que uno de los dos sea decimal (
9.0f/5,9/5.0f) o usar directamente1.8f.
- La clave está en
printf("En Fahrenheit: %.1f\n", fahrenheit)— un decimal es suficiente para una temperatura.
Comprueba tú mismo: con 100 °C debe salir 212.0; con 0 °C, 32.0. Si te sale 132.0, has caído en el 9/5 = 1.
Para practicar — cópialo en Dev-C++
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
/*
* Curso de C — Modulo 01: Variables, tipos y entrada/salida
* Ejercicio 04 — PRACTICA (rellena los TODO)
* Enunciado: Leer temperatura en Celsius y convertir a Fahrenheit (F = C * 9/5 + 32).
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej04_practica.c -o ej04 && ./ej04
*/
#include <stdio.h>
int main(void) {
// TODO: declara una variable float llamada 'celsius', inicializada a 0.0f
// TODO: muestra "Temperatura en Celsius: " y lee el valor con scanf ("%f")
// TODO: declara otra variable float llamada 'fahrenheit'
// Calcula: fahrenheit = celsius * (9.0f / 5.0f) + 32.0f
// Trampa clasica: si escribes 9/5 (enteros) el resultado es 1, no 1.8
// Solución: usa 9.0f/5.0f o simplemente 1.8f
// TODO: muestra la temperatura en Fahrenheit con 1 decimal: "En Fahrenheit: %.1f\n"
return 0;
}Solución — cópiala y ejecútala
/*
* Curso de C — Modulo 01: Variables, tipos y entrada/salida
* Ejercicio 04 — MODELO (resuelto)
* Enunciado: Leer temperatura en Celsius y convertir a Fahrenheit (F = C * 9/5 + 32).
* Dificultad: amarillo
* Compilar: gcc -std=c11 -Wall ej04_modelo.c -o ej04 && ./ej04
*/
#include <stdio.h>
int main(void) {
float celsius = 0.0f;
printf("Temperatura en Celsius: ");
scanf("%f", &celsius);
// F = C * 9/5 + 32
// IMPORTANTE: escribimos 9.0f/5.0f para que sea division real,
// no entera (9/5 en enteros = 1, perdiendo precision).
float fahrenheit = celsius * (9.0f / 5.0f) + 32.0f;
printf("En Fahrenheit: %.1f\n", fahrenheit);
return 0;
}Cómo usarlo
Dev-C++ (Windows): Archivo → Nuevo → Código fuente, pega el código y pulsa F11 (compilar y ejecutar). Si ves los acentos raros en la consola, escribe chcp 65001 y vuelve a ejecutar.