#include #include #include #include double getNumber(char * s); void calcTemperatures(double fahrenheit); int main(void) { double fahrenheit; printf("This program calculates Celsius & Kelvin from Fahrenheit.\n"); fahrenheit = getNumber("Now enter the temp in Fahrenheit: "); while (!isnan(fahrenheit)) { calcTemperatures(fahrenheit); fahrenheit = getNumber("Now enter the first operand (q to quit): "); }; return 0; } double getNumber(char * s) { double number; printf("%s", s); if (!scanf("%lf", &number) || isnan(number)) { number = NAN; } return number; } void calcTemperatures(double fahrenheit) { const float celsius_div = 5.0 / 9.0; const float celsius_offset = 32.0; const float kelvin_offset = 273.16; const double celsius = celsius_div *(fahrenheit - celsius_offset); const double kelvin = celsius + kelvin_offset; printf("%.2lf Fahrenheit are %.2lf Celsius or %.2lf Kelvin.\n", fahrenheit, celsius, kelvin); }