当前位置: > 问一个C++迭代法求一个数平方根的问题...
题目
问一个C++迭代法求一个数平方根的问题
我编的这个程序对大于1的数有用,对小数没有用.请问问题出在哪里.怎么破.
#include
using namespace std;
double mysqrt(double a)
{
double x=(a>1?1:0),y=a,z;
while(1)
{z=(x+y)/2; cout

提问时间:2021-03-17

答案
如果一个数大于1,那么它的平方根肯定在1和它本身之间,你这么不停地迭代是可以的;
但是如果一个数小于1,那么它的平方根比它本身大,这个数字在它本身和1之间;而按你这句话:
double x=(a>1?1:0),y=a,z;
你把这个数字限制在了0和它本身之间,那再怎么迭代肯定也迭代不到结果了.
为了不改后面的程序,你只要把第一句改成这样就OK,把结果限制在0和1之间迭代.
double x=(a>1?1:0),y=(a > 1 a :1),z;
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.