C++问题错在哪里

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:59:28
#include"math.h"
#include"stdio.h"
void main()
{
double a=3,b=1,sum=0;
while(fabs(1/a)<1e-6)
{
sum+=1/a;
a=fabs(a)+2;
a*=b;
b*=-1;
}
printf("π/4=%lf",sum);
}
请问错在哪里?

#include"math.h"
#include"stdio.h"
void main()
{
double a=-3,b=1,sum=1;
while(fabs(1/a)>1e-6)
{
sum+=1/a;
a=fabs(a)+2;
a*=b;
b*=-1;
}
printf("π/4=%lf",sum);
}

你的循环条件错了,级数展开也有问题,应该是π/4=1-1/3+1/5-1/7+…+1/4n-3-1/4n-1+…

while(fabs(1/a)<1e-6) //这句话但a=3的时候,条件为 false,所以不进入循环