为什么输出0.0000?

1 c

我想知道为什么这个程序的输出是0.0000:

{
    int a = 65;
    char c = (char)a;
    int m = 3.0/2;
    printf("%f\n", 5 / 2);
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

Sir*_*ius 6

5 / 2是整数除法,产生一个int结果.但是,"%f"printf标志将其解释为double值,这将导致未定义的行为.
在你的情况下,它打印0.0000,但它可能是任何东西,真的.

使用浮点操作数以获得浮点返回值.

printf("%f\n", 5.0 / 2.0);
Run Code Online (Sandbox Code Playgroud)