main()
{
float a=10;
float c;
float b=5.5;
c=a+b;
printf("%d",c);
}
上述代码的输出为零。为什么?我很抱歉,如果这是一个非常简单的C概念,我是一个初学者。
答案 0 :(得分:5)
您需要使用%f
(或%e
或%g
,具体取决于您的首选格式),而不是%d
用于浮点数。实际上,对非整数使用%d
是“未定义的行为”。
printf("%f", c);
或者,如果您尝试将浮点数舍入为整数,则必须先将其转换。
printf("%d", (int) c);
答案 1 :(得分:0)
见a+b=c
将导致c变为15.5
当你尝试将printc c作为十进制“%d”时,它将是“未定义的行为”,正如Chris所说。
如果你printf("%d",(int)c);
你的输出将变为15,如果你printf("%f",c);
你将得到15.5