| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:公式求圆周率问题的程序求指错!
只看楼主 加入收藏
mengni0219
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-10-18
结帖率:80%
收藏
已结贴  问题点数:5 回复次数:4 
公式求圆周率问题的程序求指错!
#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”,不知道为什么,应该怎么修改?
搜索更多相关主题的帖子: 圆周率 double 
2013-10-25 10:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
while(i>1.0e8);
这个语句不对  貌似应该是 while(???>1.0e-8);

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

[ 本帖最后由 wp231957 于 2013-10-25 11:09 编辑 ]

DO IT YOURSELF !
2013-10-25 11:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:2 
while(i>1.0e8); 应该是 while(i<1.0e8); 吧
而且你这样求的不是pi,而是pi/4,所以结果还得乘以4
2013-10-25 11:12
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
以下是引用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


DO IT YOURSELF !
2013-10-25 11:19
mengni0219
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-10-18
收藏
得分:0 
回复 3楼 rjsp
十分感谢!我刚开始学习C++,好多东西都不熟悉,有你们的帮助真的让我十分高兴!以后多向你学习!
2013-10-27 10:02
快速回复:公式求圆周率问题的程序求指错!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021416 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved