[社论:我读过这个问题但是(虽然事后看来,它最终的相关性与这里每个问题的相关性相同 - 即“为什么计算机会出现故障?”)这个答案并不是我问题的答案。这个问题是问为什么标准机构在该语言中设计了特定功能。而且,答案并没有回答我的问题,即我在调试这个问题时错过了什么。]
QUESTION:为什么这个 Fortran 程序的输出(详尽清单.f08 + unicodeSupport.f08)如下所示,表明Fortran的DO WHILE有一个重大错误?
这是输出,后面是环境描述,最后是相关两个文件的源代码:
意外的输出
十六进制现在是:2500H.
2500─
2501━
2502│
2503┃
2504┄
2505┅
2506┆
2507┇
2508┈
2509┉
250A┊
250B┋
250C┌
250D┍
250E┎
250F┏
十六进制现在是:2510H.
十六进制现在是:2520H.
十六进制现在是:2530H.
十六进制现在是:2540H.
十六进制现在是:2550H.
十六进制现在是:2560H.
十六进制现在是:2570H.
运行完成;退出值0;实时:530ms;用户:0ms;系统:0毫秒
预期产出
我预计每个“之间有 16 行细节”十六进制现在是:xxxxH
变量counter
在这里声明
INTEGER :: hex, counter=0, point
拥有save
属性凭借在初始化行定义其值。
第二次进入子程序时,其值为16,因此不会出现循环。
Remove =0
从声明行开始写
counter = 0
然后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)