Fortran Coder

查看: 7610|回复: 4
打印 上一主题 下一主题

[流程控制] 求助:if语句嵌套在循环语句内出现的问题

[复制链接]

15

帖子

5

主题

0

精华

入门

F 币
100 元
贡献
50 点
跳转到指定楼层
楼主
发表于 2015-9-10 23:41:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的目的是将每行数据小于2的个数计算出来,在循环语句内嵌一个if判断语句,但是计算结果每行小于2的数据个数确是0,不知道问题出在哪,请指点一下迷津,感激不尽!
[Fortran] 纯文本查看 复制代码
01PROGRAM PCM
02implicit none
03integer:: ndc=10,npc=231,i,j,m
04real*8, allocatable ::opt_all(:,:)
05allocate(opt_all(ndc,npc))
06 
07open(10,file="opt_all.txt")   !!!读取数据
08do i=1,ndc
09read(10,*)(opt_all(i,j),j=1,231)  
10enddo
11close(10)
12 
13do i=1,ndc
14m=0
15do j=1,npc
16  if(opt_all(i,j)<2)then
17  m=m+1
18  endif
19  enddo
20 
21print*,m
22pause
23 
24enddo
25END PROGRAM

opt_all.txt

14.03 KB, 下载次数: 4

原数据

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

742

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
726 元
贡献
371 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-9-11 14:22:52 | 只看该作者
你的编译器不允许PAUSE语句吧。这个语句被废止了,建议用 read(*,*) 代替。
此外,可以用 count 简化你的代码

[Fortran] 纯文本查看 复制代码
01Program pcm
02  Implicit None
03  Integer :: ndc = 10, npc = 231, i
04  Real *8, Allocatable :: opt_all(:, :)
05  Allocate (opt_all(ndc,npc))
06  Open (10, File='opt_all.txt') ! !!读取数据
07  Do i = 1, ndc
08    Read (10, *) opt_all(i,:)
09    write(*,*) count( opt_all(i,:)<2.0d0 )
10    read(*,*)!PAUSE   
11  End Do
12  Close (10)
13End Program pcm

15

帖子

5

主题

0

精华

入门

F 币
100 元
贡献
50 点
板凳
 楼主| 发表于 2015-9-11 15:23:59 | 只看该作者
楚香饭 发表于 2015-9-11 14:22
你的编译器不允许PAUSE语句吧。这个语句被废止了,建议用 read(*,*) 代替。
此外,可以用 count 简化你的代 ...

感谢您的修正~但是按这个程序运行的结果仍然显示的是0,数据明明有小于2的情况,我也仔细检查了程序,不晓得问题出在哪,麻烦您再给看看是什么问题啊,感谢!!!

2038

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1676 元
贡献
715 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2015-9-11 16:17:52 | 只看该作者
多按几下回车,后面就不是 0 了。前两行好像都是 0

15

帖子

5

主题

0

精华

入门

F 币
100 元
贡献
50 点
5#
 楼主| 发表于 2015-9-12 17:50:41 | 只看该作者
fcode 发表于 2015-9-11 16:17
多按几下回车,后面就不是 0 了。前两行好像都是 0

奥,我明白了,前几行是没有小于0的情况
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2025-5-1 12:06

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

快速回复 返回顶部 返回列表