| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1166 人关注过本帖
标题:近似求PI
只看楼主 加入收藏
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
收藏
 问题点数:0 回复次数:4 
近似求PI
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
图片附件: 游客没有浏览图片的权限,请 登录注册

输入格式:
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf("%le", &eps);
输出格式:
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
输入样例:
1E-5
输出样例:
PI = 3.14158

int main()
{
    int i,a=1,b=1,k,m;
    double z=1,n=1,eps;
    scanf("%le",&eps);
    for(i=1;z>=eps;i++)
      {
    for(k=1;k<=i;k++)
      a*=k;
    for(m=1;m<=2*i+1;m+=2)
      b*=m;
      z=a*1.0/b;
      n+=z;
     }
    printf("PI = %.5lf",2*n);
}
搜索更多相关主题的帖子: 近似 格式 输入 输出 for 
2019-12-05 22:06
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
收藏
得分:0 
我这个代码哪里错了
2019-12-05 22:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用黑暗骑士5D在2019-12-5 22:06:43的发言:

我这个代码哪里错了
“哪里错了”应该是你告诉别人。很明显编译错了,因为缺少 #include <stdio.h>

程序代码:
#include <stdio.h>

int main( void )
{
    double eps;
    scanf( "%le", &eps );

    double pi = 1;
    double t = 1;
    for( unsigned i=1; eps<t; ++i )
    {
        t = t*i/(2*i+1);
        pi += t;
    }
    pi *= 2;

    printf( "PI = %.5f\n", pi );
}

2019-12-06 08:52
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
收藏
得分:0 
回复 3楼 rjsp
但是这个程序是结果错了啊,我想知道我写的步骤怎么错了
2019-12-06 12:27
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
程序代码:
#include<stdio.h>

int main()
{
    int i,k,m;
    unsigned long long int a=1,b=1;
    double z=1,n=1,eps;
    scanf("%le",&eps);

    for(i=1;z>=eps;i++)
    {
        for(k=1,a=1;k<=i;k++)
            a*=k;
        for(m=1,b=1;m<=2*i+1;m+=2)
            b*=m;
        z=a*1.0/b;
        n+=z;
    }
    printf("PI = %.5lf",2*n);

    return 0;
}

首先,你在每次for循环之前没有把a和b的值置1,其次int型的变量不足以支撑你1e-5的运算,要使用无符号长长整形的。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-06 20:27
快速回复:近似求PI
数据加载中...
 
   



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

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