Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        5年前关闭。
                                                                                            
                
        
有人可以解释以下代码吗?
ort变量有什么用?

void squart_root(double a)
{
if (a>0.0){
    double root = 1, ort = 0;
    while(ort!=root)
    {
        ort = root;
        root = ((a/root) + root) / 2;
    }
    printf("Root is : %lf",root);
}else if(a==0.00000){
    printf("Root is : %lf",a);
}else{
    printf("Cannot find the square root of a negative number");
    }
}

最佳答案

这看起来类似于牛顿的计算平方根的方法(源自牛顿-拉夫森的方法)。

您可以阅读有关此here的更多信息。

看起来像:

  X(n+1) = (A/X(n) + X(n))/2
  It converges when X(n) = X(n+1) (that is in your case) or under some precision.


在每次迭代中,X(n)应该更接近真实根。

ort的目的是保持X(n)并检查该收敛。当根收敛时,循环终止。这就是ort在这里的原因。

您可以阅读有关Newton-Raphsone方法的信息(只需在Google上对其进行搜索),就可以得出该方程式。

10-08 08:13