Maldini33 2020-03-26 19:01 采纳率: 0%
浏览 3681

C语言新手求助:Pi/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+...

Pi/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+... 求Pi值
用了一个do while 出不了结果
是不是while后面的条件设置的不对
如何控制i使循环能够做无限次

#include <stdio.h>

int main()
{
    double pi,a,b,i;
     a=1.0;
     b=1.0;
     i=1.0;
    pi=1.0;
 do
    {a=a*i;
    b=b*(2*i+1);
    pi+=a/b;
    i++;
    }while(i/(2*i+1)<0.5);
    printf("Pi的值为%lf\n",pi*2);
}

另,如何用for循环求解此题

  • 写回答

2条回答 默认 最新

  • 奇变偶不变y 2020-03-26 21:09
    关注

    //Pi/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+... 求Pi值,
    #include
    int main()
    {
    double pi,a,b,i;
    a=1.0;
    b=1.0;
    i=1.0;
    pi=1.0;
    do
    {a=a*i; //a=1*1=1
    b=b*(2*i+1); //b=1*(2*1+1)=3
    pi+=a/b; //pi=1/3+pi=1/3+1
    i++; //i=2
    }while(i/(2*i+1)<0.49); // 2/(4+1)=0.4
    printf("Pi的值为%lf\n",pi*2);
    }
    这样应该就可以了,运行出的结果是3.14159
    题主原来的while(i/(2*i+1)<0.5一直为真,所以他就一直循环,出不来结果

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。