为了账号安全,请及时绑定邮箱和手机立即绑定

这到底哪里出错了一直输出的是0.000000.

这到底哪里出错了一直输出的是0.000000.

C
leeadma 2016-08-07 09:26:34
#include<stdio.h> #include<stdlib.h> double PAI(int n) {     double pai;     if(n==1)     {        pai=2/3;        return 2/3;     }     else     {        pai=PAI(n-1)+1/(4*n-3)-1/(4n-1);        return pai;     }     int main()     {        int n;        scanf("%d",&n);        printf("%lf",PAI(n));        return 0;      }
查看完整描述

1 回答

已采纳
?
Yexiaomo

TA贡献152条经验 获得超157个赞

如果你的问题 仅仅是 只能 输出 0.000000

那么有  错误

error1: 第8行代码:  改为  pai = 2.0/3.0 ;
        /*
            因为 2/3  结果为 0
            pai 为 double 类型,
            0 自动转换为 0.000000
        */
error2:第9行代码 改为   return pai;或者 改为 return 2.0/3.0
error3:第十三行代码 改为 pai=PAI(n-1)+1/(4*n-3)-1/(4*n-1);
error4: 第15行代码 后再加一个 },  函数体 PAI 大括号不全

另外 这个程序 不知道 是干什么的, 所以问题 实际上还没有解决

上面 的 希望对你有用, 希望你注意一下 类型之间的转换 问题

查看完整回答
反对 回复 2016-08-07
  • leeadma
    leeadma
    谢谢,这是计算π的,我还忘除四了,我还是不够认真。
  • Yexiaomo
    Yexiaomo
    不客气,我也是菜鸟,一起加油
  • 1 回答
  • 0 关注
  • 1417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信