瞎折腾


私信TA

用户名:chenbin

访问量:60990

签 名:

等  级
排  名 69
经  验 9727
参赛次数 0
文章发表 74
年  龄 0
在职情况 学生
学  校 中南大学
专  业

  自我简介:

解题思路:如下所示

                       

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 人评分

  评论区

为啥你知道x0=a/2
2019-04-07 23:03:27
题目中不是说两次求出的x的差的绝对值小于10^-5 吗  为啥代码里写的是大于啊?????
求大神解答
2018-11-21 11:42:03
  • «
  • 1
  • »