c语言编程求1+1⼀2+1⼀4+1⼀7+1⼀11+1⼀16.......当第n项的值小于10^-5时求和结束

2024-12-26 01:51:26
推荐回答(5个)
回答1:

修改后的代码如下:
#include
int main()
{
int a=1,count=0;
float sum=0,item=1.0; // item应该给一个初值
while(item>=1e-5) // 结束条件是项小于1e-5,所以item>=1e-5时应该条件成立继续运算才对
{
count++;
item=1.0/a;
sum=sum+item;
a=a+count;
}
printf("sum=%f",sum);
return 0;
}

回答2:

疑点一:float sum=0,item;这两个变量最好定义为double类型
疑点二:item没有赋初始值,导致在while()的条件判断时出错(这一条是程序不能正常计算的关键点)
疑点三:int main()是有返回值的,建议在程序的最后加上return 0;

回答3:

应该先找到a,然后反过来加
不然大数加小数会出问题的。

#include
int main()
{
int a=1,count=0;
float sum=0,item;
while(item<1e-5)
{
count++;
item=1.0/a;
/*sum=sum+item;*/
a=a+count;
}

while(a>0)
{
a=a-count;

count--;
sum+=1.0/a;
}

printf("sum=%f",sum);
}

回答4:

楼上正解,注意while()括号中的条件是满足才执行,一旦不满足跳出

回答5:

#include
int main(){
int a=1,count=0;
float sum=0,item=1;
while(item>=1e-5){
count++;
item=1.0/a;
sum=sum+item;
a=a+count;
}
printf("sum=%f",sum);
}