划分相同的浮点值,得到结果0

时间:2015-08-24 13:52:46

标签: c printf format-specifiers

#include<stdio.h>
int main()
{
    float a=5.0;
    printf("%d",a/a);
    return 0;
}

上面的代码给出了输出0。但是当我使用%f代替%d时,它会给1.000000。我的问题是,当我使用0时,为什么输出1而不是%d

1 个答案:

答案 0 :(得分:1)

%d用于打印十进制整数值 应使用%f打印出浮点值

如果没有定义b,您将收到编译错误。

使用错误的格式说明符会导致未定义的行为(UB)。

作为UB的结果,你看到了0.