以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言使用经验交流  (http://fortran.cn/bbs/list.asp?boardid=2)
----  为什么没输出  (http://fortran.cn/bbs/dispbbs.asp?boardid=2&id=1950)

--  作者:yjb23
--  发布时间:2009/8/30 9:35:10

--  为什么没输出
real x,y0,y1

print*,"请输入初值x:"

read *,x

y0=x

y1=2*y0/3+x/(3*y0**2)

do while(abs(y1-x)>1d-6)

   y0=y1

   y1=2*y0/3+x/(3*y0**2)

end do

print*,y1

end

请高手指点一下,为什么这个程序输入x 以后没有输出,谢谢!


--  作者:水木清华
--  发布时间:2009/8/30 15:43:36

--  

把程序中do while这一句改为:do while(abs(y1-y0)>1d-6)就有输出了。


--  作者:yjb23
--  发布时间:2009/8/30 20:42:27

--  新手学习中
多谢了!

我还是想问一下,为什么改了以后就有输出,x与y0的主要区别是什么


--  作者:tsz2008
--  发布时间:2011/5/3 20:40:45

--  

楼上的正解。

这是一个迭代算法,如果条件中X不变化,永远也跳不出循环了

y1-y0 就行了。


京ICP备05056801号