为什么这代码不能得到圆周率的值,人家说这是求圆周率的代码啊?
#include <stdio.h>
double pi(double eps)
{
double s=0.0,t=1.0;int n;
for (n=1;t>eps;n++)
{
s+=t;t=t*n/(2*n+1);
return (2.0*s);
}
}
void main()
{
printf("%f",pi(0.000001));
}
为什么这代码不能得到圆周率的值,人家说这是求圆周率的代码啊?
[解决办法]
return语句误写入for循环中了:
#include <stdio.h>
double pi(double eps)
{
double s=0.0,t=1.0;int n;
for (n=1;t>eps;n++)
{
s+=t;t=t*n/(2*n+1);
}
return (2.0*s);
}
int main(void)
{
printf("%f",pi(0.000001));
return 0;
}