#include <stdio.h>
#define F(x) 32 + (x*9)/5
int main(void)
{
int F,C;
printf ("Enter temperature in celsius=");
scanf ("%d",&C);
F(C);
printf (" %d fahrenheit = %d celsius\n", F, C);
return 0;
}
当我输入10摄氏度时,结果如下:
1798680630 fahrenheit = 10 celsius
我写错公式了吗?我似乎无法找出错误。
只是一个初学者,请阅读我的教程。谢谢!
最佳答案
您根本不存储宏扩展的结果。因此,F
未初始化。
IMO,根本不需要该宏。只需使用一个变量:
#include <stdio.h>
int main(void)
{
int C;
float F;
printf ("Enter temperature in celsius=");
scanf ("%d",&C);
F = 32 + (C*9)/5.0;
printf (" %f fahrenheit = %d celsius\n", F, C);
return 0;
}
注意,我使用了文字
5.0
,这样您就不会仅执行整数除法。关于c - 逻辑错误-将华氏转换为摄氏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39854478/