En esta ocasión te presentamos un código C++ que convierte una unidad de temperatura en grados Centígrados, Fahrenheit o Kelvin, dependiendo de la elección del usuario. El código ha sido probado en CodeBlocks en Windows, y funciona perfectamente bien.

#include <iostream>
#include <string>
#include <Windows.h>
#include <locale>

using namespace std;

double celsiusToFahrenheit(double celsius) {
    return (celsius * 9 / 5) + 32;
}

double celsiusToKelvin(double celsius) {
    return celsius + 273.15;
}

double fahrenheitToCelsius(double fahrenheit) {
    return (fahrenheit - 32) * 5 / 9;
}

double fahrenheitToKelvin(double fahrenheit) {
    return (fahrenheit + 459.67) * 5 / 9;
}

double kelvinToCelsius(double kelvin) {
    return kelvin - 273.15;
}

double kelvinToFahrenheit(double kelvin) {
    return (kelvin * 9 / 5) - 459.67;
}

int main() {

    // Estableciendo idioma español
        setlocale(LC_ALL, "Spanish"); // En Linux
        SetConsoleCP(1252);  // En Windows
        SetConsoleOutputCP(1252);

    double value;
    char unit;

    cout << "Introduce la cantidad a convertir (ejemplo 20ºC, 20C, 20 c): ";
    cin >> value >> unit;

    if (unit == 'C' || unit == 'c' || unit == 'º') {
        cout << value << "ºC son " << celsiusToFahrenheit(value) << "ºF" << endl;
        cout << value << "ºC son " << celsiusToKelvin(value) << "ºK" << endl;
    } else if (unit == 'F' || unit == 'f') {
        cout << value << "ºF son " << fahrenheitToCelsius(value) << "ºC" << endl;
        cout << value << "ºF son " << fahrenheitToKelvin(value) << "ºK" << endl;
    } else if (unit == 'K' || unit == 'k') {
        cout << value << "ºK son " << kelvinToCelsius(value) << "ºC" << endl;
        cout << value << "ºK son " << kelvinToFahrenheit(value) << "ºF" << endl;
    } else {
        cout << "Unidad de grados no reconocida. Por favor introduce C, c, ºC, F, f, ºF, K, k o ºK." << endl;
    }

    return 0;
}

Descarga el archivo .CPP aquí.