展开全部
把你的程序修改好了(写得有点636f70793231313335323631343130323136353331333366306431复杂):
#includedouble flag(int n);
double mut(int m);
int main()
{ double sum=0.0,a[10000];
int i=0,j=1,k=0;
double m;
scanf("%lf",&m);//有修改
for(i=0,j=1,k=0; (flag(i)/mut(j))>=m; i++,j+=2,k++)
{ a[k]=flag(i)/mut(j);
sum+=a[k];
}
printf("%f",sum*2);
}
double flag(int n)
{ int i;
double sum=1.0;
if (n>0)
for(i=1; i<=n; i++)
{ sum=sum*i;
}
if (n==0) sum=1.0;//此句多余
return sum;
}
double mut(int m)
{ int i;
double sum=1.0;
for(i=1; i<=m; i=i+2)
{ sum=sum*i;
}
return sum;
}下面是我写的程序(运行结果与上面的程序完全相同):
#include
int main()
{ double sum=0,t=1,m,i,j;
scanf("%lf",&m);
for(i=1,j=3; t>m; i++,j+=2)
{ sum+=t;
t*=i/j;
}
printf("=%f",sum*2);
return 0;
}