gpt4 book ai didi

带递归的 C++ 平方根

转载 作者:行者123 更新时间:2023-11-30 02:28:30 28 4
gpt4 key购买 nike

出于某种原因,我的平方根程序得到的答案与大多数输入应得到的答案略有不同。我不确定这是为什么。只有某些输入是错误的。在给出答案后的最后我也遇到了段错误,我不确定为什么会这样。

#include<iostream>
#include<cmath>
#include<cfloat>
#include<string>
#include <cstdlib>
using namespace std;

//declare sqroot function calls recursive function newton
double sqroot1(double num );
double newton(double num, double guess);
int main(int argc, char **argv)
{

for( int i = 0 ; i < argc ; i++)
{
cout<<"sqroot("<<argv[i+1]<<") is "<< sqroot1(atoi(argv[i+1])) <<endl;
}
}

double newton(double num, double a)
{
if ((abs(a*a - num) <= FLT_EPSILON))
{
return a;
}
else
{
newton(num, (a+num/a)/2 );
}
}

double sqroot1(double num)
{
double sqrt = newton(num,num/2);
return sqrt;
}

最佳答案

该函数具有未定义的行为,因为您忘记放置返回语句

double newton(double num, double a)
{


if ((abs(a*a - num) <= FLT_EPSILON))
{
return a;
}
else
{
newton(num, (a+num/a)/2 );
^^^^^^^^^^^^^^^^^^^^^^^^^^^
}


}

必须有

    return newton(num, (a+num/a)/2 );

关于带递归的 C++ 平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40689154/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com