解题思路以及注意事项:
迭代法迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。
大家要有灵活运用迭代法思维,本题就是先让x=(1+4/1)/2=2.5;然后第二次x=(2.5+4/2.5)/2=2.05。。。如此下去就会越来越接近2是不是!就跟开方一样。直到最后进度满足了就退出循环。
实例代码:
#include"stdio.h" #include"math.h" //包含fabs()函数的头文件,别忘了加 int main() { int a; double x=1.0,x1; printf("请输入需要计算的数\n"); scanf("%d",&a); do { x1=x; x=(x1+a/x1)/2; } while(fabs(x-x1)>1E-5); //fabs()绝对值函数 printf("%lf",x); return 0; }
大家还有什么不懂的就在下面评论区留言
0.0分
111 人评分
你好,我的代码如下,但是怎么都运行不出来结果? main() { int a; float x,y; x=1; scanf("%f",&a); do { y=x; x=(y+a/y)/2; } while(fabs(x-y)>0.00001); printf("%.3f",x); }
我想问一下第一次为什么要给x1赋值1.0
你好,我用的是while语句,也跑成功了,代码如下 int main() { float a; float b,c; scanf("%f",&a); while(fabs(b-c)>0.00001) { c=b; b=(c+a/c)/2; } printf("%.3f",b); } 我想问,第一次循环时c还没有值,为什么不报错呢
人民币问题 (C语言代码)浏览:663 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:1225 |
点我有惊喜!你懂得!浏览:3873 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:532 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:584 |
回文数(一) (C语言代码)浏览:728 |
数组输出 (C语言代码)错误???浏览:558 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:624 |
出圈】指针malloc版浏览:355 |
Solotravel 2018-11-30 11:05:12 |
你的a是整型,输入用了%f
福卡 2018-12-14 12:51:07 |
哈哈,谢谢