How to convert between Fahrenheit, Celsius, and Kelvin in C

1 Answer

0 votes
#include <stdio.h>

void TemperatureConvert(float temperature, char unit_type, float results[2]) {
    switch(unit_type) {
        case 'c':
            results[0] = ((9.0 / 5.0) * temperature) + 32; // Fahrenheit
            results[1] = (temperature + 273.15); // Kelvin
            break;
        case 'f':
            results[0] = (temperature - 32) / 1.8; // Celsius
            results[1] = (temperature - 32) * 5 / 9.0 + 273.15; // Kelvin
            break;
        case 'k':
             results[0] = (temperature - 273.15 ); // Celsius
             results[1] = (((9.0 / 5.0) * temperature) - 459.67); // Fahrenheit
             break;
        default:
             results[0] = results[1] = 0; 
    }
} 
 
int main(void) {
    float result[2];

    TemperatureConvert(24, 'c', result);
    printf("Fahrenheit is %f degrees\n"
           "Kelvin     is %f degrees\n\n", result[0], result[1]);
    
    TemperatureConvert(3, 'f', result);
    printf("Celsius is %f degrees\n"
           "Kelvin  is %f degrees\n\n", result[0], result[1]);
           
    TemperatureConvert(3, 'k', result);
    printf("Celsius    is %f degrees\n"
           "Fahrenheit is %f degrees\n", result[0], result[1]);
}


 
/*
run:
   
Fahrenheit is 75.199997 degrees
Kelvin     is 297.149994 degrees

Celsius is -16.111111 degrees
Kelvin  is 257.038879 degrees

Celsius    is -270.149994 degrees
Fahrenheit is -454.269989 degrees
  
*/

 



answered Dec 14, 2024 by avibootz
edited Dec 14, 2024 by avibootz

Related questions

1 answer 120 views
1 answer 121 views
1 answer 130 views
1 answer 122 views
1 answer 112 views
1 answer 108 views
1 answer 99 views
...