-1
main()
{
    float a=10;
    float c;
    float b=5.5;
    c=a+b;
    printf("%d",c);
}

上述代码的输出为零。这是为什么呢?如果那是一些非常简单的 C 概念,我很抱歉,我是一个初学者。

4

2 回答 2

5

您需要使用%f(或%e%g,取决于您的首选格式)而不是%d浮点数。事实上,使用%d非整数是“未定义的行为”。

printf("%f", c);

或者,如果您尝试将浮点数舍入为整数,则必须先将其强制转换。

printf("%d", (int) c);
于 2013-08-25T17:40:30.197 回答
0

See a+b=c will result c to become 15.5 when you try to printf c as a decimal "%d" it will be "undefined behaviour" as Chris said. If you do printf("%d",(int)c); your out put will become 15 and if you printf("%f",c); you will get 15.5

于 2013-08-25T17:48:08.893 回答