解题思路:如下所示
x0=a/2 a x1=(x0+a/x0)/2。通过迭代法不断逼近x0和x1之间的距离。在循环语句中令x0=x1,x1=(x0+a/x0)/2,最后通过一个while((x1-x2)>1e-5)作为判断条件
注意事项:
1e-5表示前后两次求出的x的差的绝对值小于10^-5。
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
float a,x0,x1;
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
while(fabs(x0-x1)>1e-5)
{
x0=x1;
x1=(x0+a/x0)/2;
}
printf("%.3f\n",x1);
return 0;
}
0.0分
4 人评分
简单的a+b (C语言代码)浏览:1040 |
gets函数前有scanf读取时候,会读取缓存回车导致出错!!!浏览:995 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:508 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:428 |
C二级辅导-同因查找 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:646 |
数列排序 (C语言代码)浏览:780 |
【密码】 (C语言代码)浏览:297 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:534 |
母牛的故事 (C语言代码)浏览:803 |