关于tc2.0的一个小问题

[复制链接]
查看11 | 回复5 | 2005-12-2 14:10:19 | 显示全部楼层 |阅读模式
2.1*1+3.2*0=2.1,而2.1!=5.3,也就是说if条件不成立,所以执行else后边的printf语句,从而输出bbb。
回复

使用道具 举报

千问 | 2005-12-2 14:10:19 | 显示全部楼层
即使初始化y=1,也不一定出来aaa,因为结果已经是浮点数了,浮点数的比较不能直接用==,而应该用相减之后绝对值小于某个很小的数,比如abs(a - b) < 0.000001这样才可以(我已经用VC测试过,直接==还是bbb)
回复

使用道具 举报

千问 | 2005-12-2 14:10:19 | 显示全部楼层
2.1*x=2;3.2*y=0;2.1*x+3.2*y=2; if(2==5.3)printf("aaa\n"); else printf("bbb\n");2不等于5,所以打印出bbb。
回复

使用道具 举报

千问 | 2005-12-2 14:10:19 | 显示全部楼层
好久不用了,早忘记语法了呵呵,不好意思~
回复

使用道具 举报

千问 | 2005-12-2 14:10:19 | 显示全部楼层
因为if语句的关系表达式不成立,结果为0,所执行else语句。2.1*x+3.2*y其实就是2.1*1+3.2*0=2.1所以表达式是假的(因为2.1不等于5.3)所以执行else里面的语句打印bbb
回复

使用道具 举报

千问 | 2005-12-2 14:10:19 | 显示全部楼层
2.1*1+3.2*0= 2.1当然是else执行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行