Fortran Coder

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

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

[复制链接]

15

帖子

5

主题

0

精华

入门

F 币
100 元
贡献
50 点
跳转到指定楼层
楼主
发表于 2015-9-10 23:41:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的目的是将每行数据小于2的个数计算出来,在循环语句内嵌一个if判断语句,但是计算结果每行小于2的数据个数确是0,不知道问题出在哪,请指点一下迷津,感激不尽!
[Fortran] 纯文本查看 复制代码
PROGRAM PCM
implicit none
integer:: ndc=10,npc=231,i,j,m
real*8, allocatable ::opt_all(:,:)
allocate(opt_all(ndc,npc))

open(10,file="opt_all.txt")   !!!读取数据
do i=1,ndc
read(10,*)(opt_all(i,j),j=1,231)   
enddo
close(10)

do i=1,ndc
m=0
do j=1,npc
  if(opt_all(i,j)<2)then
  m=m+1
  endif
  enddo

print*,m
pause

enddo
END PROGRAM

opt_all.txt

14.03 KB, 下载次数: 4

原数据

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

737

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
705 元
贡献
361 点

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

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

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

15

帖子

5

主题

0

精华

入门

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

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

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

地板
发表于 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, 2024-12-25 08:57

Powered by Tencent X3.4

© 2013-2024 Tencent

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