代码输出不了,困在函数里

img


#include
long double wang(long double eps);
int meng(int N);
int chun(int M);
int main(){
long double eps;
scanf("%le",&eps);
long double t=wang(eps)2;
printf("PI = %.5le",t);
return 0;
}
int meng(int N){
long double sum;
int i=1;
for(sum=1;i<=N;i++){
sum=sum
i;
}
return sum;
}
int chun(int M){
int sum;
int i=1;
for(sum=1;i<=2M-1;i+=2){
sum
=i;
return sum;
}
}
long double wang(long double eps){
long double t,sum=0;
int i;
for(i=0;;i++){
t=1.0*meng(i)un(i);
sum+=t;
if(t<1e-5) break;
}
return sum;
}

把代码贴全了
t的公式都看不清,确定t的值会收敛吗,不会越来越大吗


#include <stdio.h>
double wang(double eps);
double meng(int N);
double chun(int M);

int main()
{
    double eps;
    scanf("%le",&eps);
    double t=wang(eps)*2;
    printf("PI = %.5lf",t);
    return 0;
}

double meng(int N)
{
    double sum;
    int i;
    sum    = 1.0;
    for(i=1;i<=N;i++){
        sum=sum*i;
    }
    return sum;
}

double chun(int M)
{
    double sum=1.0;
    int i;
    for(i=3;i<=2*M+1;i+=2){
        sum=sum*i;
    }
    return sum;
}
double wang(double eps)
{
    double t,sum=1.0;
    int i;
    for(i=1;;i++){
        t=1.0*meng(i)/chun(i);
        sum+=t;
        if(t<eps) break;
    }
    return sum;
}

题主考虑的太复杂了,修改如下,供参考:

#include <stdio.h>
#include <math.h>
int main() 
{
    int  i = 1;
    long double eps, t = 1.0, PI = 1.0;
    scanf("%le", &eps);
    while (fabs(t) > eps)
    {
        t *= i * 1.0 / (2 * i + 1);
        PI += t;
        i++;
    }
    PI *= 2.0;
    printf("PI = %.5f", PI);
    return 0;
}