为什么这个输出是0.000不应该是2.00000吗

img


这个难道输出错误了吗,
我记得好像是输出2.0000啊,这个应该不会是这个啊,

会不会没有进行编译

a是int型,应该用%d输出
如果想按照float型输出,那你的a要先强制转换成float型
你直接把一个int型的变量强制按float格式输出
那就变成有效数字是0,指数是0.0000002,那输出的当然是0了

你a的类型没有转换成浮点型,建议去看一下C语言中的强制类型转换

【温馨提示:若能帮到您,望给个采纳该答案哦,谢谢!】
1、效果如下

img

2、原因
1)%d,能够接收整形数字输出
2)%f,能够接收浮点数字输出
3)int a,定义a是整形,由于%f只认浮点的变量,否则输出默认值0.00

2、代码修改
将int制改为float变量,或者a/1.0输出

#include <stdio.h>

int main(void) { 
    
    int a=2;
    
    printf("以整形类型输出:%d\n",a);
    printf("以浮点类型输出:%f\n",a);
    
    printf("除以1.0隐式转为浮点类型输出:%f\n",a/1.0);
}