用迭代法求x=a^0.5,迭代公式为x1 = (x0 + a / x0) / 2;要求前后两次求出的x的差的绝对值小于10^-5。
程序:
#include<stdio.h>
#include<math.h>
int main()
{
float a,x0,x1;
printf("请给a赋一个初值:");
scanf("%f", &a);
x0 = a / 2;//不妨令x的初值为x0=a/2,也可以是其他值
x1 = (x0 + a / x0) / 2;
do
{
x0 = x1;
x1 = (x0 + a / x0) / 2;
} while (fabs(x0 - x1) >= 1e-5);
printf("The square root of %5.2f is %8.5f\n", a, x1);//square root表示平方根
return 0;
}
结果:
请给a赋一个初值:2
The square root of 2.00 is 1.41421
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1742875
c语言:用迭代法求x=a^0.5,迭代公式为x1 = (x0 + a / x0) / 2;前后两次求出的x的差的绝对值小于10^-5
原文:http://yaoyaolx.blog.51cto.com/10732111/1742875