1-1=?不i会

17:52 提问
想要求出当1/1+1/2+1/3+...+1/i=15.0时,是第几项?但是程序不对,求解
int main()
double s=0.0;
while(s!=15.0)
if(s=15.0)
printf("%f",i);
按赞数排序
int main()
double s=0.0;
if((s + (double)1.0/i ) & 15){}
s+=(double)1.0/i;
printf("%f",i);
最后的if里面是判断等于,不是赋值。
还有这样并算不出来i的值,因为浮点数会损失精度,不会刚好相加到15。
首先你要确定会有精确为15的时候吗?
如果没有 那个这是个死循环,有很大问题。double判断没有用相等的,一般是在某个范围吧
其次如楼上说的if的条件写法不对 应该是if(s==15.0)
刚进去while判断s并不等于15.0
while循环体并没有执行
int main()
double s=0.0;
while(true)
s+=1/(i*1.0); //应该先求和在i++
if(fabs(s) & 15.0){}
//使用绝对值判断
printf("%d",i);
不能是等于15吧,只能用大于等于
其他相似问题

我要回帖

更多关于 我可能不会爱你 的文章

 

随机推荐