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

#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;
     }


leeadma
浏览 1418回答 1
1回答

Yexiaomo

如果你的问题 仅仅是 只能 输出 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 大括号不全另外 这个程序 不知道 是干什么的, 所以问题 实际上还没有解决上面 的 希望对你有用, 希望你注意一下 类型之间的转换 问题
打开App,查看更多内容
随时随地看视频慕课网APP