20个回答
2019-03-02
展开全部
因为整型数据与浮点型数据的存储方式是不一样的,例如浮点型是32位4个字节,它的后4位是用来表示小数点的数,而整型数据就除了最高位判断是否为无符号,后面的31位全为表示整型数据,有些编译器不将他进行强转,是会报错的,即时不报错效果肯定也是天差地别。比如写成printf("%f\n",(float)num);这样将num在输出之前就强转成浮点型数据了,就没有错了
展开全部
此程序中,已定义num为整型变量,而在后面的printf()输出时,类型被描述为浮点数(%f)。这样写法是有问题的。c语言中,整型变量和浮点型变量在内存中的存放格式是不一样的。整型变量表示的是一个16位长的二进制数,在内存中占用2个字节单元,而浮点数是由一个字节的阶码和3个字节的尾数构成的,共占用4个字节内存单元。将2字节的整型数按4字节浮点数型式输出,会得到无法预料的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为是整型啊,你输出写成了%f,改成%d
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为代码中用错了输出控制符,应该将printf("%f\n",num);中的%f改成%d才是。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你输出是,应该使用%d,而不是%f。
%d 整形。int
%f 单精度实数 float
%lf 双精度实型 double
%c 字符型 char
%s z字符串 char[]
%d 整形。int
%f 单精度实数 float
%lf 双精度实型 double
%c 字符型 char
%s z字符串 char[]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询