程序输出-nan(ind)求解

「已注销」 2016-12-31 01:54:45
这几天看SICP跟着书上写了一个用牛顿法求平方根的函数
#include <iostream>
#include <cmath>

bool goodEnough(double guess, double x) {
if (std::abs(x - guess*guess) < 0.001) {
return true;
}
else {
return false;
}
}

double improve(double guess, double x) {
return ((x / guess) + guess) / 2;
}

double SqrtIter(double guess,double x) {
if (goodEnough(guess, x)) {
return guess;
}
else {
SqrtIter(improve(guess, x), x);
}
}
double NewtonSqrt(double x) {
return SqrtIter(1.0, x);
}

int main() {
double k = NewtonSqrt(2.0);
std::cout << k;
getchar();
}

单步结果是没问题的,但是输出却是-nan(ind),百度谷歌也没有找到解决方法,求解
...全文
1163 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ri_aje 2017-01-01
  • 打赏
  • 举报
回复
SqrtIter else 里面递归调用的时候需要 return,否则白递归了,然后返回的是个垃圾值。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧