int main (void)
{
int fahrenheit; // fahrenheit stands for fahrenheit
double c; // c stands for celsius
printf("Enter your fahrenheit, we'll covnvert it into celsius! ");
scanf("%f", &fahrenheit);
c = 5/9 * (fahrenheit - 32);
printf("Here is your %f in celsius!.\n");
return (0);
}
我已经通过断点跟踪代码,当它接受我的输入时,计算关闭,但公式是正确的。某种我无法指出的逻辑错误。请帮忙!
The scanf
调用使用了错误的格式字符串。您正在阅读一本int
所以你需要它是:
scanf("%d", &fahrenheit);
表达方式5/9
使用整数除法进行计算。事实上,编译器可以在编译时解决这个问题。该表达式的计算结果为0
.
您需要执行浮点除法。例如:
5.0/9
Or:
5/9.0
Or
5.0/9.0
您只需要至少一个操作数是浮点值。
将其放入表达式中,您可以编写:
c = 5.0/9.0 * (fahrenheit - 32);
并获得您所期望的答案。
Your printf
说法也是错误的。您应该启用警告并让编译器告诉您这一点。你本来想写:
printf("Here is your %f in celsius!.\n", c);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)