为什么这个循环不停。。。

来源:百度知道 编辑:UC知道 时间:2024/04/29 20:52:37
#include <iostream>
using namespace std;
int main()
{
for(double n=1,f=1,p=0;f/n>=1e-7||f/n<=-1e-7;p+=f/n,n+=2,f=-f )
cout<<4*p<<endl;
system("pause");
return 0;
}
主要看为什么跳不出循环
都不行,不是double的问题,高手救我~
n*=2,和n+=2,有本质的区别吗?只是一个是乘,我觉得。
这个程序是算圆周率的,(pi/4)=1-1/3+1/5-1/7。。。。

将所有数字后加小数点.(你写的双精度实数不合法)

说句不是很好听的话,不知道你的机子要算几天才能算完呀??呵蚵呵.
为什么不出循环,是你心太急了.
如果你非要在这份工作前面加个期限....我希望是....n*=2

---不信你用n*=2来代替n+=2,这样进度会很快,程序将在一秒内达到完成呵呵呵呵呵呵呵呵

你的程序是对的.

回: n*=2对你程序毫无意义,只是用来加速到达你的循环终值条件,用以测试你的程序是否能结束.在实际运算中,还应写成n+=2,但不知要运行多久才能结束了.但可以肯定你程序不是死循环了,呵呵.

晕,这么长啊,你就不能把那个表达式分开吗,看得也清楚些!!!

因为你没跳出for啊
exit for啊