累加求和直到最后一项的值小于1e-6应该怎么写?
问题描述:
是这个样子?
int s;
float n,term;
double sum;
term=1,s=1,n=1,sum=1;
while(fabs(term)>=1e-6)
{
s=-s;
n++;
term=s/n;
sum=sum+term;
}
还是这个样子呢
int s;
float n,term;
double sum;
term=1,s=1,n=1,sum=0;
while(fabs(term)>=1e-6)
{
sum=sum+term;
s=-s;
n++;
term=s/n;
}
如果是第二种的话最后一项不就不会加在总数里吗?
以及为什么定义的时候要将n定义为浮点数?为什么定义为整数代码会出错?
答
用第一段代码,n如果是整形,term=s/n;只能返回整形,如果小于1返回结果是0,整形相除只能返回整形。