巴比伦算法求平方根

分析:
巴比伦算法介绍:
1. 假设要求a的平方根,先找到一个近似值x0,如a/2;
2. 被开方数a除以近似值x0;
3. 求第一步和第二步得到的值的平均数;
4. 令平均数为新的近似值,返回第二步,循环计算(根据精度要求,进行循环控制)
经过前面四个步骤,可以得到如上公式;
对公式的理解:可以把xn理解为x0,xn+1理解为x1,然后套用公式即可
程序=算法(解决问题的步骤)+数据结构(数据类型的选择)
程序如下:
//习题5.12平方根的迭代公式
#include<stdio.h>
#include<math.h>//需要使用绝对值函数fabs()
int main()
{
float a,x0,x1;//根据算法和数据精度的要求,需要定义三个变量和将变量定义为float型。
printf("请输入正数a的值:"); //用于提示用户输入一个被开方数;
scanf("%f",&a);//没加取地址符,由于这个里没写,导致输出没有结果
x0=a/2;//第一步,取得一个近似值
x1=(x0+(a/x0))/2;//根据公式,算出第二步
do//do循环,先执行循环体,后判断是否满足条件
{
x0=x1;
x1=(x0+(a/x0))/2;
} while(fabs(x1-x0)>=1e-5);//判断条件是否满足,满足结束循环,不满足继续循环;
printf("%f的平方根为:%f",a,x1);
return 0;
}

