#include <stdio.h>
void main(void)
{int a;
float b;
b=2/3;
a=5.0/2.0;
printf("b=%f,a=%d",b,a);
}
关于C语言的一点小概念问题
答案:3 悬赏:20 手机版
解决时间 2021-05-17 07:37
- 提问者网友:泪痣哥哥
- 2021-05-16 08:27
最佳答案
- 五星知识达人网友:从此江山别
- 2021-05-16 09:52
因为2/3系统会认为是两个整数相除结果为整数0,让后再转换成float型的,相当于float(2/3)和(float)2/3的区别
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-05-16 11:40
b=2/3=0.000000
2/3就是默认 (int)(2/3)=0
要是再为:(float)(2/3)=0.000000
这样就是你的目的了:
(float)2/3=0.666667
2.0/3=0.666667
理解吧
- 2楼网友:洒脱疯子
- 2021-05-16 10:02
如果是b=2/3的话,先是两个整数相除,结果为0,然后将这个0转换为浮点数赋给了b,所以b是0.000000而不是0..666667;而被除数和除数中有一个为浮点数的话,那就先转换成数,然后再做除法,结果当然就为0.66667了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯