为什么t2非要加绝对值以后,结果才会正确呢?不加pi=1,π=4,t2不是个正数吗?加与不加为什么有这么大的差

C语言 码拜 9年前 (2016-04-16) 770次浏览
/*用公式π/4=1-1/3+1/5-1/7+1/9…求π的近似值,直到最后一项的绝对值小于10的-4次方为止。*/
/*科学计数法的表达方式为1e-4,不知道为什么t2一定要取绝对值,才能得到近似值?*/
#include <stdio.h>
#include <math.h>
void main()
{
double pi=1,n=1,t1,t2;
while(fabs(t2)>=1e-4)
{
n=n+4;
t1=1/(n-2);
t2=1/n;
pi=pi-t1+t2;
}
pi=pi*4;
printf(“π等于%lf\n”,pi);
}
解决方案

80

你的t2都没初始化过,里面可能存了一个垃圾值(极有可能是个负数)
在VS下值是-9.2559631349317831e061(是个负数)
所以不满足while循环,直接就输出结果了
PS:加了绝对值的话就会进入while循环,建议可以初始化成1.0

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么t2非要加绝对值以后,结果才会正确呢?不加pi=1,π=4,t2不是个正数吗?加与不加为什么有这么大的差
喜欢 (0)
[1034331897@qq.com]
分享 (0)