| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 910 人关注过本帖
标题:π的近似值 怎么都是4.000000的
只看楼主 加入收藏
eniddi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-6-5
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:13 
π的近似值 怎么都是4.000000的

π/4≈1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于1e-5



#include "stdio.h"
#include "math.h"
void main()
{
    double sum=0,t;
    int i=1;
    while(fabs(t)>=1E-5)
    {
        t=1/(2*i-1);
        if(i%2==0)
        {
            t=-t;
        }
        sum=sum+t;
        i++;

    }
    printf("%lf",4*sum);
}


是哪里错了呢
搜索更多相关主题的帖子: include 绝对值 double 
2013-06-07 12:25
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
程序代码:
#include "stdio.h"
#include "math.h"
void main()
{
    double sum=0.0,t=1.0;
    int i=1;
    while(fabs(t)>=1E-5)
    {
        t=1.0/(2*i-1);
        if(i%2==0)
        {
            t=t*-1;
        }
        sum=sum+t;
        i++;

    }
    printf("%f\n",4*sum);
}

DO IT YOURSELF !
2013-06-07 12:31
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:5 
程序代码:
#include "stdio.h"
#include "math.h"
int main(void)
{
    double sum=0,t=1;//先给t赋一个值,使它能进入while循环内!!
    int i=1;
    while(fabs(t)>=1E-5)
    {
        t=1.0/(2*i-1);
        if(i%2==0)
        {
            t=-t;
        }
        sum=sum+t;
        i++;

    }
    printf("%lf\n",4*sum);
}

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-07 12:32
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:0 
你把i.定义成 double i,或者,,,试一下
2013-06-07 12:40
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
回复 2楼 wp231957
异曲同工啊!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-07 12:43
eniddi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-6-5
收藏
得分:0 
回复 2楼 wp231957
看了你的之后突然发现忽略了“/”是整除  改成t=1.0/(2*i-1);之后就可以运行了  
谢谢哦
2013-06-07 22:26
eniddi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-6-5
收藏
得分:0 
回复 4楼 小xiong
不能的啦  取余“%”只能用于整形数据
2013-06-07 22:30
eniddi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-6-5
收藏
得分:0 
回复 3楼 我叫沃恩
不管t初始值是什么 t进入循环后都会有重新赋值  所以我觉得t不用赋初值也可以
2013-06-07 22:32
VRML_0504
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:81
注 册:2013-6-7
收藏
得分:0 
回复 8楼 eniddi
不给t赋值,while(fabs(t)>=1E-5)这个循环判断条件能通过?肯定要赋一个值呀!
2013-06-07 22:47
eniddi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-6-5
收藏
得分:0 
回复 9楼 VRML_0504
对的哦  忘记还有一个条件判断了
谢谢思密达~
2013-06-07 23:30
快速回复:π的近似值 怎么都是4.000000的
数据加载中...
 
   



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

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