初级C语言
答案:4 悬赏:80 手机版
解决时间 2021-11-23 02:25
- 提问者网友:棒棒糖
- 2021-11-22 05:33
初级C语言
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-11-22 06:59
程序分析:
结果为1.000000并换行回车
因为 3/2是整除,结果是整数1.按%f输出,即为1.00000
上机试了一下,竟然报运行时出错。莫非这里不进行数据类型的转换?
如果再有个输出语句又不报错,输出0.000000了,奇怪
结果为1.000000并换行回车
因为 3/2是整除,结果是整数1.按%f输出,即为1.00000
上机试了一下,竟然报运行时出错。莫非这里不进行数据类型的转换?
如果再有个输出语句又不报错,输出0.000000了,奇怪
全部回答
- 1楼网友:笑迎怀羞
- 2021-11-22 10:03
输出0.000000追问Why?
- 2楼网友:过活
- 2021-11-22 09:44
答案是 0.000000 因为后面3/2没有定义类型
应该这样写:
#include
void main(){
float i=3;
printf("%f\n",i/2);
}
输出:1.500000
应该这样写:
#include
void main(){
float i=3;
printf("%f\n",i/2);
}
输出:1.500000
- 3楼网友:我住北渡口
- 2021-11-22 08:05
3/2由于两个都是整型常量,输出一个整型常量1.5就自动变成了1.
在4字节内存中,00000000 00000000 00000000 00000001
而输出是%f,浮点型数据,不是像整数那么存储的,它是由数符,小数部分,指数三部分存储的。
至于多少位表示小数部分,C标准没有具体规定,由各自C语言编译系统自定。
这里的00000000 00000000 00000000 00000001,小数部分是0,
所以最后得出的结果是0.00000追问但是无论是什么数,输出结果都是0.000000,比如123456/2。结果仍为0.000000,这小数部分不为0了吧,为什么输出还是0呢?追答你知道也浮点型float可以表示的数的范围么、、、
大约0以及1.2e-38到3.4e38,你觉得123456对于10的38次方而言很大么、、、
你觉得呢。。。
在4字节内存中,00000000 00000000 00000000 00000001
而输出是%f,浮点型数据,不是像整数那么存储的,它是由数符,小数部分,指数三部分存储的。
至于多少位表示小数部分,C标准没有具体规定,由各自C语言编译系统自定。
这里的00000000 00000000 00000000 00000001,小数部分是0,
所以最后得出的结果是0.00000追问但是无论是什么数,输出结果都是0.000000,比如123456/2。结果仍为0.000000,这小数部分不为0了吧,为什么输出还是0呢?追答你知道也浮点型float可以表示的数的范围么、、、
大约0以及1.2e-38到3.4e38,你觉得123456对于10的38次方而言很大么、、、
你觉得呢。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯