#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
*/