修改后的代码如下:
#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;
}
疑点一:float sum=0,item;这两个变量最好定义为double类型
疑点二:item没有赋初始值,导致在while()的条件判断时出错(这一条是程序不能正常计算的关键点)
疑点三:int main()是有返回值的,建议在程序的最后加上return 0;
应该先找到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);
}
楼上正解,注意while()括号中的条件是满足才执行,一旦不满足跳出
#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);
}