int deno = 1, sign = 1;
while(fabs(a) >= 1e-6)
{
a = sign / (double)deno;
s += a;
deno += 3;
sign = -sign;
}
printf("s=%.6f",s);
return 0;
}
1.不要判断a,直接判断deno>=1000000
2.既然deno最大会是100万,int型存不下了啊,溢出了
主要是你少算了一项导致的。这种要求最后一项不大于多少的题目,最好是有do...while,先加。然后判断被加项是否大于1e-6。当最后加入的一项不满足条件就结束了
#include"stdio.h"
#include"math.h"
int main(void)
{
double a = 1.0, s = 0.0;
int deno = 1, sign = 1;
do
{
a = sign / (double)deno;
s += a;
deno += 3;
sign = -sign;
}while(fabs(a) >= 1e-6);
printf("s=%.6f",s);
return 0;
}