初学者,计算1-1/3+1/5-1/7+...直到最后一项的绝对值小于10的-16次方2

#include
void main()
{
int n=1;
float x=1,t=1,s=0;
while(t>=1e-6)

{
t=1.0/(2*n-1);
s=s+x*t;
x=(-1)*x;
n=n+1;
}
printf("1-1/3+1/5-1/7+...=%f\n",s);
getch();
return 0;
}
为什么是t>=1e-6.而不是t<1e-6,x=(-1)*x的正负号控制怎么理解

http://zhidao.baidu.com/link?url=pAbbkYNLJ7vLnpU3vAuWyjtF83QS2m3-AHvumjx9RTp671Iqz4yyjp0uxaCuZlHpWZ-FYFGshux-4mQtxQAdRK

1e-6是个临界值,最后一项一定比它小,而最后一项的前一项就是t,,必须要比1e-6大,这个程序就会停止循环,得到结果

=1e+6 这是循环运行的条件