求解π的近似值
π=(1-1/3+1/5-1/7+1/9......)
直到最后一项的绝对值小于1e-6;
我的代码:
#include<stdio.h>
int main()
{
inti;
double n,sum,p;
i=1,sum=0;
n=1;
while(n>=1e-6)
{
if(i%2==0)
sum=sum-n;
else if(i%2==1)
sum=sum+n;
i=i+1;
n=1/(2*i-1);
}
p=4*sum;
printf("π=%lf",p);
return 0;
}
循环到n值就出错了,不知道为什么,求解答,感激不尽!!!!
n=1.0/(2*i-1); //这里改一下就好了,因为整数相除结果还是整数,1/3结果是0,没有小数,想要小数部分,就需要有浮点数参与
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-11-10
n=1/(2*i-1);
C语言的右值里都是整型,所以右值结果精度会丢失,可以改成:
n = 1.0/(2*i-1);
本回答被网友采纳