#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或者更小
“for(i=1;;i++)”这句缺循环条件啊
“abs(s)”得有头文件math.h
输出double的数据最好用%lf,如果用%f可能导致输出错误