| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5914 人关注过本帖, 1 人收藏
标题:用公式π/4≈1-1/3+1/5……求π的近似值,要求直到最后一项的绝对值小于0.0 ...
只看楼主 加入收藏
li1346819486
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-11-6
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
用公式π/4≈1-1/3+1/5……求π的近似值,要求直到最后一项的绝对值小于0.000001为止。

#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    double i,sum,pi;
    n=1;
    i=1.0;
    sum=0.0;
    while(fabs(i/n)>=1e-6)
    {
        sum=sum+i/n;
        n=n+2;
        i=-i;
    }
    pi=4*sum;
    printf("pi=%10.4d\n",pi);
    return 0;
}
这个程序哪里错了?
搜索更多相关主题的帖子: 小于 公式 绝对值 sum π 
2019-11-07 12:29
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:7 
printf("pi=%10.4d\n",pi);

printf("pi=%10.4lf\n",pi);应该使用lf也就是double型进行打印输出。

[此贴子已经被作者于2019-11-7 12:59编辑过]


一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-07 12:50
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:7 
回复 2楼 纯蓝之刃
你这样也不对,小数点后的位数不够,也就是精度不够,应该是:
printf("pi=%10.6lf\n",pi);
2019-11-07 13:38
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
回复 3楼 自学的数学
可能人家只是想保留四位小数呢,这样又没有错误,当它想保留六位的时候自己修改就是了。
就像一个函数如果写成abc(int d)。那么不管人家参数d有没有使用,这样都是正确的,顶多提醒人家一下。
如果写成abc(),那么就需要考虑一下是不是楼主漏掉了什么,考虑是填入void还是其他的了。
我是这么认为的,不对之处请多指教。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-07 13:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:7 
每多一个无意义的变量,代码可读性就差一些
程序代码:
#include <stdio.h>

int main( void )
{
    double pi_4 = 0;
    for( int i=1000001; i>0; i-=2 )
        pi_4 += (2.0-i%4)/i;
    printf( "%.4f\n", pi_4*4 );
}

2019-11-07 16:39
cmynb666
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-7-3
收藏
得分:0 
回复 5楼 rjsp
大哥,能讲讲思路吗,我看了一会子没看懂
2021-07-03 12:20
快速回复:用公式π/4≈1-1/3+1/5……求π的近似值,要求直到最后一项的绝对值小 ...
数据加载中...
 
   



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

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