#include<stdio.h>
#include<stdlib.h>
#define abs(a) ((a)>0 ? a: -a)
#define eps_sqrt 0.00000000000001
#define it 100
float sqrt(float x)
/*The Square Root Function using the Newton's Method*/
{
int it_sqrt=0;
float a_sqrt = x/2;
while ((abs((a_sqrt*a_sqrt)-(x))>=eps_sqrt) && (2.0*a_sqrt != 0) && (it_sqrt<=it))
{
a_sqrt = a_sqrt - ((a_sqrt*a_sqrt)-(x)/(2.0*a_sqrt));
it_sqrt++;
}
return a_sqrt;
}
int main()
{
printf("%.5f\n", sqrt(5));
system ("pause");
}
我尝试使用牛顿迭代法在 Python 上找到平方根,它工作得非常好。我是 C 新手,我不明白为什么这个功能对我不起作用。每当我运行它时,它都会返回“-1.#INF0A”任何帮助将不胜感激。
编辑:我尝试将 eps 更改为0.000001
,但也没有用。