帮我看看哪里错了,问题是利用公式:π⼀4=1-1⼀3+1⼀5-1⼀7+……,直到最后一项的绝对值小于10-6为止

2025-06-29 08:02:26
推荐回答(2个)
回答1:

#include
#include
main()
{
int i;
double s=0;
for(i=1;;i++){
if(i%2!=0)
s=s+1*1.0/(2*i-1);
else
s=s-1*1.0/(2*i-1);
if(1*1.0/(2*i-1)<1e-6)break;
}
printf("%f",4*s);
}
s<1e-6是什么...不是最后一项小于1e-6吗,怎么变成结果小于1e-6了..
s是实数,遇到整除运算要乘1.0
算到3.141595,应该够精度了吧,不够的话,把1e-6改成1e-7或者更小

回答2:

“for(i=1;;i++)”这句缺循环条件啊
“abs(s)”得有头文件math.h
输出double的数据最好用%lf,如果用%f可能导致输出错误