Fahrenheit y Celsius en C

C – Conversión de Fahrenheit a Celsius y viceversa

Resumen: resolver un ejercicio básico de C para la conversión de temperaturas, en el cual se implementa la fórmula de conversión de grados Fahrenheit a Celsius y la conversión de Celsius a Fahrenheit.

Sé que es un ejercicio muy sencillo pero es muy común al comenzar a programar en ANSI C.

Las fórmulas

Este es un ejercicio de programación, no de matemáticas ni física. Por lo tanto usaré las siguientes fórmulas:

C = (F – 32) / 1.8

F = (C * 1.8) + 32

 

Fahrenheit y Celsius en C
Funciones en C para convertir grados Fahrenheit y Celsius

Convertir Celsius a Fahrenheit en C

Voy a colocar la fórmula en una función y queda así:

float celsiusAFahrenheit(float celsius) {
    return (celsius * 1.8f) + 32;
}

Usamos el tipo de dato float porque no estamos trabajando con enteros. Simplemente recibimos los grados Celsius y regresamos el resultado de la fórmula. Es decir, multiplicamos por 1.8 (la f es para indicar que es un flotante) y le sumamos 32.

El valor que se regresa es flotante de igual forma.

Convertir grados Fahrenheit a Celsius

Ahora veamos la otra fórmula. Queda así:

float fahrenheitACelsius(float fahrenheit) {
    return (fahrenheit - 32) / 1.8f;
}

Como ves, aplicamos la fórmula. Le restamos 32 a los grados Fahrenheit y lo dividimos entre 1.8 flotante. Regresamos el resultado.

Convirtiendo temperaturas

Ahora que has declarado las funciones puedes usarlas. Aquí un ejemplo de uso:

int main(void) {
    printf("30 grados C a F: %f\n", celsiusAFahrenheit(30.0f));
    printf("86 grados F a C: %f\n", fahrenheitACelsius(86.0f));
}

Como ves, estoy imprimiendo lo que regrese la función. Si quisieras que un usuario proporcione las variables podría ser algo así usando scanf:

float fahrenheit = 0, celsius = 0;// Aquí almacenaremos las variables del usuario
printf("Dime los grados F:\n");
scanf("%f", &fahrenheit);
float equivalencia = fahrenheitACelsius(fahrenheit);
printf("Equivalen a %f\n", equivalencia);
printf("Dime los grados C:\n");
scanf("%f", &celsius);
equivalencia = celsiusAFahrenheit(celsius);
printf("Equivalen a %f\n", equivalencia);

Poniendo todo junto

El código completo es el siguiente:

/**
 * Conversión de temperatura en ANSI C. Convertir Fahrenheit a Celsius y Celsius a Fahrenheit
 *
 * @author parzibyte
 * @see https://parzibyte.me/blog
 * */
#include <stdio.h>

float fahrenheitACelsius(float fahrenheit) {
    return (fahrenheit - 32) / 1.8f;
}

float celsiusAFahrenheit(float celsius) {
    return (celsius * 1.8f) + 32;
}


int main(void) {
    printf("30 grados C a F: %f\n", celsiusAFahrenheit(30.0f));
    printf("86 grados F a C: %f\n", fahrenheitACelsius(86.0f));
    float fahrenheit = 0, celsius = 0;// Aquí almacenaremos las variables del usuario
    printf("Dime los grados F:\n");
    scanf("%f", &fahrenheit);
    float equivalencia = fahrenheitACelsius(fahrenheit);
    printf("Equivalen a %f\n", equivalencia);
    printf("Dime los grados C:\n");
    scanf("%f", &celsius);
    equivalencia = celsiusAFahrenheit(celsius);
    printf("Equivalen a %f\n", equivalencia);
}

Mira aquí más sobre C.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *