c语言 求π π/2=(2/1)*(2/3)*(4/3)*(4/5)*...【(2*n)/(2*n-1)】*【(2*n)/(2*n+1)】

这是我写的
#include <stdio.h>
double f(int n){
double j,k,l;
j=(2*n)/(2*n-1);
k=(2*n)/(2*n+1);
l=j*k;
return(l);
}
int main(){
int i=1;
double term=1,a=1;
while(term>1.0e-5){
a=a*term;
term=f(i);
i++;
}
printf("%f",a);
}

不知道哪不对

#include <stdio.h>
int main()
{
double sum=1;
double an=1;
for(int i=1;i<=1000;i++)
{
if(i%2==0) an=(double)i/(i+1);
else an=(double)(i+1)/i;
sum*=an;
printf("%f\t",2*sum);//输出每次计算的近似值
}
printf("\n所求结果的近似值为:%f\n",2*sum);
return 0;
}

运行结果:
3.143335 3.139854 3.143331 3.139857 3.143327
3.139861 3.143323 3.139865 3.143319 3.139869
3.143315 3.139873 3.143312 3.139876 3.143308
3.139880 3.143304 3.139884 3.143301 3.139888
3.143297 3.139891 3.143293 3.139895 3.143289
3.139899 3.143286 3.139902 3.143282 3.139906
3.143279 3.139910 3.143275 3.139913 3.143271
3.139917 3.143268 3.139920 3.143264 3.139924
3.143261 3.139927 3.143257 3.139931 3.143254
3.139934 3.143250 3.139938 3.143247 3.139941
3.143243 3.139945 3.143240 3.139948 3.143236
3.139952 3.143233 3.139955 3.143229 3.139959
3.143226 3.139962 3.143223 3.139965 3.143219
3.139969 3.143216 3.139972 3.143212 3.139975
3.143209 3.139979 3.143206 3.139982 3.143202
3.139985 3.143199 3.139989 3.143196 3.139992
3.143193 3.139995 3.143189 3.139998 3.143186
3.140002 3.143183 3.140005 3.143180 3.140008
3.143177 3.140011 3.143173 3.140014 3.143170
3.140018 3.143167 3.140021 3.143164 3.140024
所求结果的近似值为:3.140024
Press any key to continue
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-10
j=(2*n)/(2*n-1);//j=(2*n*1.0)/(2*n-1); / 这个除号分子分母若都为整数的话结果会取整,如3/2=1,2/3=0,故要让分子或分母变为浮点型
此外循环条件有点问题,你自个在想想本回答被提问者采纳
相似回答