for循环的判断条件是如何发挥作用的
例如#include<stdio.h>
int main()
{ double i;
for( i = 0; i != 10.0; i += 0.1)
{ printf("%.1f ", i); }
return 0;
}
为什么变成了无限循环
你要了解计算机的浮点数是用二进制值的近似表示的。所以你的10个0,1相加不一定正好等于10.0的
c语言的浮点不能直接用==,!=来比较两个数,要用精度表示
如你的循环要改为
for( i = 0; fabs(i - 10.0)>1e-5; i += 0.1)
(要加头文件math.h的)
所以你很少看到,C用小数做循环变量的
下一篇:怎样使特定区域的时间变慢
上一篇:这段JAVA代码有什么问题?
热门标签: