[讨论]一个很有趣的程序
一个很简单的程序是:
#include <stdio.h>
#incude <conio.h>
void main()
{
float one,two=-1;
for(one=0;one!=two;one++)two=one;
clrscr();
printf("stop at : %f",one);
}
上面的程序就是检测浮点数误差,某一个足够大的浮点数加一后本身并没有改变,即大数吃小数
但有趣的是,程序还可以这样写:
#include <whole.h>
void main()
{
float one;
one=0;
for(;one==++one;);
clrscr();
printf("stop at : %f",one);
}
两个程序的结果都是 :one=16777216.000000
第一个程序很容易理解,但第二个就很难理解,表达式似乎记过成立哟
注:以上程序在tc2.0下编译通过
[此贴子已经被作者于2005-1-13 14:41:41编辑过]