为什么以下代码的输出变为零?

use*_*898 -1 c printf add output

main()
{
    float a=10;
    float c;
    float b=5.5;
    c=a+b;
    printf("%d",c);
}
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ung 5

你需要使用%f(或%e或者%g,根据您的首选格式),而不是%d浮点数字.实际上,使用%d非整数是"未定义的行为".

printf("%f", c);
Run Code Online (Sandbox Code Playgroud)

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

printf("%d", (int) c);
Run Code Online (Sandbox Code Playgroud)