主题:很简单的程序运行输出结果匪夷所思
wandaoge0712
[专家分:0] 发布于 2011-09-01 12:50:00
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个回复)
沙发
helo_aBiNg [专家分:480] 发布于 2011-09-01 13:36:00
debian 下 gfortran 4.6.1 是从 0.01 左右输出的,而不是 7.x。但这种拿浮点数作比较条件的方式最好少用。
板凳
yeg001 [专家分:14390] 发布于 2011-09-01 16:18:00
我觉得是输出太多, 以至于楼主根本没看到0.01到7.多的数据吧!
3 楼
wandaoge0712 [专家分:0] 发布于 2011-09-01 16:48:00
[quote]debian 下 gfortran 4.6.1 是从 0.01 左右输出的,而不是 7.x。但这种拿浮点数作比较条件的方式最好少用。[/quote]
何为拿浮点数作比较条件的方式呢
4 楼
wandaoge0712 [专家分:0] 发布于 2011-09-01 16:49:00
[quote]我觉得是输出太多, 以至于楼主根本没看到0.01到7.多的数据吧![/quote]
全看到了,没那些数据,不信你可粘贴到Fortran试一试
5 楼
chenge [专家分:0] 发布于 2011-09-01 17:23:00
_________________________________________________________
新建的java超级群,有兴趣的可以加一下,大牛小虾汇聚一堂! 哈哈!
共享有很多资料,可以供高手进阶,新手学习!
名字:In'8 技术联盟[精英]
群号:93133286
6 楼
dongyuanxun [专家分:7180] 发布于 2011-09-01 18:12:00
在print*,x,y
之后加入
read(*,*)
自己看
7 楼
yeg001 [专家分:14390] 发布于 2011-09-01 20:58:00
楼主, 我不知道你运行的环境是什么, 但是窗口显示是有限制的, 就那么多行.
要不你修改输出到文件看看是否齐全.
又或者像6楼勋哥说的那样家个read, 再或者pause看看他究竟有没有计算.
8 楼
wandaoge0712 [专家分:0] 发布于 2011-09-02 19:34:00
fortran power station 4.0在网上下载的,实在受不了了,已经卸了
9 楼
yeg001 [专家分:14390] 发布于 2011-09-03 09:34:00
我用cvf算, 等他算完拉上去也只是由7.多开始. 但是完整由0.01到10有1000行, cmd窗口不提供那么多行的显示的. 如果你改成0.01到100,相信结束的时候拉上去会变成97.多开始了.
10 楼
cgl_lgs [专家分:21040] 发布于 2011-09-04 23:41:00
把窗口的行缓冲改成3072再试试:)
我来回复