注册 登录
编程论坛 C++教室

公式求圆周率问题的程序求指错!

mengni0219 发布于 2013-10-25 10:56, 519 次点击
#include<iostream>
using namespace std;
int main()
{
  double pi=0,i=1,j=1;
  do
  {
      pi=pi+j*1/i;
      i=i+2;
      j=j*(-1);
  }
  while(i>1.0e8);
  cout<<pi;
  system("pause");
    return 0;   
}
程序运行结果只显示“1”,不知道为什么,应该怎么修改?
4 回复
#2
wp2319572013-10-25 11:06
while(i>1.0e8);
这个语句不对  貌似应该是 while(???>1.0e-8);

但是你的求π公式好像不对

[ 本帖最后由 wp231957 于 2013-10-25 11:09 编辑 ]
#3
rjsp2013-10-25 11:12
while(i>1.0e8); 应该是 while(i<1.0e8); 吧
而且你这样求的不是pi,而是pi/4,所以结果还得乘以4
#4
wp2319572013-10-25 11:19
以下是引用rjsp在2013-10-25 11:12:34的发言:

while(i>1.0e8); 应该是 while(i<1.0e8); 吧
而且你这样求的不是pi,而是pi/4,所以结果还得乘以4
乘以4就对了
程序代码:
#include<iostream>
using namespace std;
int main()
{
    double pi=0.0,i=1.0,j=1.0;
    do
    {
        pi=pi+(j*1)/i;
        i=i+2;
        j=j*(-1);
    }
    while(abs(j/i)>1.0e-8);
    cout<<pi*4<<endl;
    system("pause");
    return 0;  
}
结果等于3.14159

#5
mengni02192013-10-27 10:02
回复 3楼 rjsp
十分感谢!我刚开始学习C++,好多东西都不熟悉,有你们的帮助真的让我十分高兴!以后多向你学习!
1