点赞(2)
 

0.0分

101 人评分

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

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

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

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

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

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

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

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

评论列表 共有 28 条评论

老顽童2333 5年前 回复TA
@老顽童2333 devc++是不需要初始化默认为0,vs2017会出错,其他编译器没试过,但是还是do while好,因为一般还是要初始化的吧
hnsfdxyc 5年前 回复TA
@老顽童2333 我已经运行过了, x1不赋值默认为0,在while循环中x赋值给x1,则x1变为1
老顽童2333 5年前 回复TA
你程序运行试了吗,x1没有初值啊,是不是要用do while
hnsfdxyc 5年前 回复TA
@未来 一起学习一起进步嘛
未来 5年前 回复TA
@未来 @00000152 是的..查了书才发现不用lf会丢失精度..感谢回复
hnsfdxyc 5年前 回复TA
@未来 你可能scanf里面忘了把它改成(“%lf”)了
hnsfdxyc 5年前 回复TA
@未来 # include<stdio.h> # include<math.h> int main() { double x=1.0,x1,n; scanf("%lf",&n); while(fabs(x-x1)>1e-5){ x1 = x; x = (x1+n/x1)/2; } printf("%.03lf",x); return 0; }
未来 5年前 回复TA
为什么我把a设置为double结果就会出错?