| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7468 人关注过本帖
标题:用循环语句求pi的近似值
只看楼主 加入收藏
胡文涛
Rank: 1
来 自:北京 朝阳
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-6-30
结帖率:87.5%
收藏
已结贴  问题点数:5 回复次数:4 
用循环语句求pi的近似值
用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到发现某一项的绝对值小于10^(-6)为止(该项不累加)。
#include<stdio.h>
int main()
{
    int n,i;
    double sum=0,pi,x;
    for (n=1,i=1;n<=1000000;n++,i++)
    {
        n=n+2;
        x=(-1)^i*1/n;
        if (1/n<1e-6)
            break;
        sum=sum+x;
    }
    pi=(1+sum)*4;
    printf("The estimation of pi is %f",pi);
    return 0;
}
运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册

问题出在什么地方?
搜索更多相关主题的帖子: double 绝对值 
2016-07-10 21:14
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
printf("The estimation of pi is %f",pi);
double 类型  用%lf

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-07-10 21:27
胡文涛
Rank: 1
来 自:北京 朝阳
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-6-30
收藏
得分:0 
回复 2楼 lanke711
试过了,但还是同样的结果。
2016-07-10 21:36
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:5 
#include<stdio.h>
int main()
{
    int n=1,i=-1,k=1;
    double sum=0,pi,x;
    for (;n<=1000000;)//改用while来判断更好。 你的for循环算法也是错的
    {
    k=k*i;//加减称号
        n+=2;
        x=1.0/n;//"^"你确定你知道这个是做什么用的
        if (x<1e-6)
            break;
        sum=sum+x*k;
    }
    pi=(1+sum)*4;
    printf("The estimation of pi is %lf",pi);
    return 0;
}


[此贴子已经被作者于2016-7-10 21:55编辑过]

2016-07-10 21:42
胡文涛
Rank: 1
来 自:北京 朝阳
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-6-30
收藏
得分:0 
回复 4楼 linlulu001
按照你的改法运行了一下程序,果然能输出正确结果了。
总结:
1.注意整型向实型的转换;
2.可以引入改变符号的变量;
3.for语句循环条件中的n++与循环体中的n=n+2相冲突。
2016-07-10 21:55
快速回复:用循环语句求pi的近似值
数据加载中...
 
   



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

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