海贼王空岛慕斯:如何用c语言解这道题,我的解法不知道为什么不行,请高手指导一下,谢谢.

来源:百度文库 编辑:中科新闻网 时间:2024/03/28 18:11:44
编写程序,计算下面级数中偶数项的部分和ES,在求和时,若该和数的最后一个偶数项小于0.0001时,输出部分和ES。 <帮助>

1/(1*2*3)+1/(2*3*4)+1/(3*4*5)+……+1/(n*(n+1)*(n+2))+ ……
分析:该题和第七题极为类似。不同的方面是:每次累加的表达式有所改变;另外,对于循环的次数是一个不确定值,它满足的条件是中间变量t的精确值要大于0.0001。

正确答案:和是0.056419。

ES=0;
for(i=2;;i+=2){
temp=1/(i*(i+1)*(i+2));
ES+=temp;
if (temp<0.0001)break;
}
printf("ES= %f",ES);

楼上正解,不过i的初始应为1
double ES=0;
int i;
double temp;

for(i=1;;i+=2)
{
temp=1.0/(i*(i+1)*(i+2));
ES+=temp;
if (temp<0.0001)break;
}
printf("ES= %f",ES);

i应该是每次循环加一吧