#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
我错误地写了这个公式吗?我似乎无法弄清楚错误。 只是一个初学者,通过我的教程。谢谢!
答案 0 :(得分:2)
您根本不存储宏扩展的结果。因此,F
未经授权。
国际海事组织,根本不需要宏观。只需使用变量:
#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
,因此您不会执行整数除法。
答案 1 :(得分:0)
您不能将F()
的输出保存到变量中。它应该是:
(...)
F = F(C);
printf (" %d fahrenheit = %d celsius\n", F, C);
目前您正在打印未初始化的变量,这是一种未定义的行为并且非常危险。
答案 2 :(得分:0)
您正在打印F的地址。也不要浪费变量。
删除
F(C);
您的打印如下:
printf (" %d fahrenheit = %d celsius\n", F(C), C);