用代码实现C函数功能——sqrt

转:http://blog.csdn.net/shawnjsp/article/details/6249093

今天主要实现的sqrt,即开方功能。一开始也没有什么头绪,在csdn的论坛上看到解决办法,思路简单,但是方法很奇妙。自己稍微添加其他部分,sqrt功能就实现了。

#include<Stdio.h>
#include<Conio.h>
int main(void)
{
  double _sqrt(double );                /*使用函数原型,即不带参数名,可以减少错误*/
  double n,s;
  printf("Input number:");
  scanf("%lf",&n);                      /*double 输出要用lf*/
  s=_sqrt(n);
  printf("The result is:%3.2lf",s);     /*double 格式化输出3.2lf*/
  getch();
  return 0;
}
double _sqrt(double a)
{
  double x,y;
  x=0.0;
  y=a/2;
  while(x!=y)
  {
    x=y;
    y=(x+a/x)/2;
  }
  return x;
}
这段代码主要是double _sqrt(double a)的函数体,从主函数main中传递用户输入的数字后,利用逼近的方法,判断两个数是否相等,这样就解决了开方问题。

原文地址:https://www.cnblogs.com/cheng07045406/p/3362544.html