回 帖 发 新 帖 刷新版面

主题:很简单的程序运行输出结果匪夷所思

program do_while
 real x,y
 x=0.
 y=0.
 do while(y<=10)
 y=y+0.01
 x=x+0.01
  print*,x,y
 enddo
 end
运行后输出应该x,y应该从0.01到10,可为什们Fortran运行输出是从7.多到10


回复列表 (共10个回复)

沙发

debian 下 gfortran 4.6.1 是从 0.01 左右输出的,而不是 7.x。但这种拿浮点数作比较条件的方式最好少用。

板凳

我觉得是输出太多, 以至于楼主根本没看到0.01到7.多的数据吧!

3 楼

[quote]debian 下 gfortran 4.6.1 是从 0.01 左右输出的,而不是 7.x。但这种拿浮点数作比较条件的方式最好少用。[/quote]
何为拿浮点数作比较条件的方式呢

4 楼

[quote]我觉得是输出太多, 以至于楼主根本没看到0.01到7.多的数据吧![/quote]
全看到了,没那些数据,不信你可粘贴到Fortran试一试

5 楼

_________________________________________________________
新建的java超级群,有兴趣的可以加一下,大牛小虾汇聚一堂! 哈哈!
共享有很多资料,可以供高手进阶,新手学习!

名字:In'8 技术联盟[精英]
群号:93133286   

6 楼

在print*,x,y
之后加入
read(*,*)

自己看

7 楼

楼主, 我不知道你运行的环境是什么, 但是窗口显示是有限制的, 就那么多行.
要不你修改输出到文件看看是否齐全.
又或者像6楼勋哥说的那样家个read, 再或者pause看看他究竟有没有计算.

8 楼

fortran power station 4.0在网上下载的,实在受不了了,已经卸了

9 楼

我用cvf算, 等他算完拉上去也只是由7.多开始. 但是完整由0.01到10有1000行, cmd窗口不提供那么多行的显示的. 如果你改成0.01到100,相信结束的时候拉上去会变成97.多开始了.

10 楼

把窗口的行缓冲改成3072再试试:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册