解题思路:这道题不会做,可能只是对迭代法不太熟悉,迭代法呢,是先自定一个初值x0,作为a的平方根值,在我们的程序中取a/2作为x0的初值;利用迭代公式求出一个x1。此值与真正的a的平方根值相比,误差很大。把新求得的x1代入x0中,准备用此新的x0再去求出一个新的x1,利用迭代公式再求出一个新的x1的值,也就是用新的x0又求出一个新的平方根值x1,此值将更趋近于真正的平方根值。比较前后两次求得的平方根值x0和x1,如果它们的差值小于我们指定的值,即达到我们要求的精度,则认为x1就是a的平方根值(以上来自百度百科),可能有人还是看不懂,比较复杂,那么我们来看代码吧


注意事项:迭代法的用法

参考代码:

#include <stdio.h>


int main() {

double x0,x1;             //首先我们将平方根值定义为double

int a;

scanf("%d",&a);

x0=a/2.0;            //第一次的x0我们用a/2

while(1){             //这里我们用while,我习惯用for循环,这里while好点

x1=(x0+a/x0)/2;                 //这里是迭代法公式

if(x0-x1<0.00001) break;            //如果精度小于指定值,停止循环,我们已经求出来了

else x0=x1;                   //将误差较大的x1赋值给x0

printf("%0.3f\n",x1);

return 0;

}

如果有不懂,或者不对的地方,私聊或留言

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论