当前位置: 代码迷 >> C语言 >> 求PI的值的问题
  详细解决方案

求PI的值的问题

热度:402   发布时间:2008-06-05 17:47:10.0
求PI的值的问题
/*根据以下公式返回满足精度M要求的PI的值。
PI=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+......*/


#include <stdio.h>
double pi (double m)
{
double s=0.0,t=1.0;int n;
for(n=1;t>m;n++)
{s+=t;t=n*t/(2*n+1);}           
return(2.0*s);
}
main()
{double a,m;
printf("please give the m\n");
scanf("%f",&m);
printf("%f\n",a=pi(m));
getch();
}

求给定精度的PI的值,可我不管输入0.1还是0.000000000001,结果都是3.141593,程序那里的问题,还请指教.
搜索更多相关的解决方案: double  精度  printf  main  give  

----------------解决方案--------------------------------------------------------
因为你是用的double,所以显示的位数有限制地
----------------解决方案--------------------------------------------------------
如果这样的话,我输入0.1,应该输出3.100000才对.
----------------解决方案--------------------------------------------------------
行了,写成这样就OK了.
#include <stdio.h>
double pi (double m)
{
double s=0.0,t=1.0;int n;
for(n=1;t>m;n++)
{s+=t;t=n*t/(2*n+1);}           
return(2.0*s);
}
main()
{double m;
printf("please give the m\n");
scanf("%lf",&m);
printf("%lf\n",pi(m));
getch();
}
----------------解决方案--------------------------------------------------------
  相关解决方案