我是 C++ 编程的初学者。我在 sqrt 中没有发现除以零和负数。为什么 approx_root() 返回 -nan(ind) 而不是 x?请帮助我!
#include <iostream>
#include <cmath>
using namespace std;
double approx_root(double x) {
double x_prev = x;
x = ((2 - pow(x_prev, 3)) / 5);
cout << x_prev << " " << x << endl;
if (abs(x - x_prev) <= pow(10, -5)) {
//cout << abs(x - x_prev) << " " << pow(10, -5) << endl;
return x;
}
approx_root(x);
}
int main()
{
double x=1;
cout << approx_root(x) << endl;
return 0;
}
我正在等待我的函数返回 x。我不明白我能做什么。
您似乎正在尝试使用递归函数找到根的近似值。您的代码中有几个问题。
首先,在approx_root函数中,对approx_root(x)的递归调用缺少return语句。其次,在主函数中,您尝试直接输出 approx_root(x) 的结果,而没有正确考虑其返回值。纠正此错误可能会有所帮助。