C语言中,用while()来做条件判断无效?

while(fabs(mid*mid-n) > 0.000001);
    {if((mid*mid)>n)
        up=mid;
    else
        low=mid;
    mid=(up+low)/2;
    cout<<mid<<endl;}
return...;
                            

while(1)
{ if(fabs(mid*mid-n) > 0.000001)
    {if((mid*mid)>n)
        up=mid;
    else
        low=mid;
    mid=(up+low)/2;
    cout<<mid<<endl;}
  return...;
}
                        

这是用二分查找实现sqrt()的部分代码,上面第一段代码居然连while循环都进不去,而改成第二段代码可以成功运行,不解,调试时发现问题出在第一段代码的while()上,连循环体都进不去,我能保证fabs(mid*mid-n)肯定是大于0.00001的

阅读 5k
3 个回答
while(fabs(mid*mid-n) > 0.000001);
    {if((mid*mid)>n)
        up=mid;
    else
        low=mid;
    mid=(up+low)/2;
    cout<<mid<<endl;}
return...;

while(fabs(mid*mid-n) > 0.000001);后面用个;是要干什么

你看你的第一行的分号加到哪里去了?

楼上正解。

while();

不就是说while到这就结束了么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进