#include<stdio.h>
#include<math.h>
double mySqrt(double x);
int main() {
double x = 2;
double y = mySqrt(x);//调用自定义函数
double z = sqrt(x);//调用系统函数,与自定义函数做对比,判断是否正确
printf("x=%f, y=%f\n", x, y);
printf(" z=%f\n", z);
return 0;
}
double mySqrt(double x) {
if (x < 0) {
printf("参数错误");
return -1;
}
double y0 = 1, y1;
y1 = (y0 + x / y0) / 2;
while (fabs(y1 - y0) > 1e-6)//当后一项减前一项的绝对值大于10^-6时,进入循环。
{
y0 = y1;
y1= (y0 + x / y0) / 2;
}
return y1;
}
测试结果