在 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 做同样的事情
我正在开发一个将 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 做同样的事情