/*用公式π/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);
}
/*科学计数法的表达方式为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
在VS下值是-9.2559631349317831e061(是个负数)
所以不满足while循环,直接就输出结果了
PS:加了绝对值的话就会进入while循环,建议可以初始化成1.0