在 C 中将华氏温度转换为摄氏温度,反之亦然

Converting from Fahrenheit to Celsius and viceversa in C

我正在开发一个将 F 转换为 C 的程序,反之亦然。问题是,我见过类似的程序,如果转换是从度数 F 到度数 C 或反之,则首先输入,然后输入数据。我只想要一种更加用户友好的版本,您可以在其中输入数据“35F”,它会为您提供输出。

到目前为止,我基本上已经完成了 %70 的程序,但我认为在同一个 scanf() 中同时读取温度和字符时遇到了问题。我想知道是否可以只用 1 行就可以做到这一点,我的目标是否正确。

目前程序 运行 没问题,但输出总是 0.000000 ): 我很想得到你的帮助,并提前感谢你!

float temperature, Farenheit, Celsius;
char unit0;
char unit1 = 'C';
char unit2 = 'F';

printf("Enter the temperature (Ex. 35F): ");
scanf("%f%c", &temperature, &unit0);

if (unit0 == unit2)
{
    Celsius = (temperature-32) * (5/9) ;
    printf("The temperature %f%c is equal to %f in Celsius", temperature, unit0, Celsius);
}
else
if (unit0 == unit1)
{
    Farenheit = (9/5)*temperature+32;
    printf("The temperature %f%c is equal to %f in Fahrenheit", temperature, unit0, Fahrenheit);
}

(5/9) 更改为 5.0/9.0。如果您使用整数除法,则四舍五入后结果为 0。

你应该为 9/5 做同样的事情