关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,72 阅读FORTRAN程序DIMENSION M(12)OPEN(10,FILE='FILE3.DAT')READ(10,*)(M(1),I=1,12)DO 10J=1,12IF (M(J).GE.60) N=N+1CONTINUEWRITE(*,20) NFORMAT(2X,'N=',12)END为什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 20:48:14

关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,72 阅读FORTRAN程序DIMENSION M(12)OPEN(10,FILE='FILE3.DAT')READ(10,*)(M(1),I=1,12)DO 10J=1,12IF (M(J).GE.60) N=N+1CONTINUEWRITE(*,20) NFORMAT(2X,'N=',12)END为什么
关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,72 阅读FORTRAN程序
DIMENSION M(12)
OPEN(10,FILE='FILE3.DAT')
READ(10,*)(M(1),I=1,12)
DO 10J=1,12
IF (M(J).GE.60) N=N+1
CONTINUE
WRITE(*,20) N
FORMAT(2X,'N=',12)
END
为什么答案是8,为什么不是9啊,大于60的数不是9个么?

关于FORTRAN语言:FILE3.DAT有如下数据 50,54,64,65 65,70,85,90 46,73,60,72 阅读FORTRAN程序DIMENSION M(12)OPEN(10,FILE='FILE3.DAT')READ(10,*)(M(1),I=1,12)DO 10J=1,12IF (M(J).GE.60) N=N+1CONTINUEWRITE(*,20) NFORMAT(2X,'N=',12)END为什么
DIMENSION M(12)
OPEN(10,FILE='FILE3.DAT')
READ(10,*) (M(I),I=1,12)
DO 10 J=1,12
IF (M(J).GE.60) N=N+1
10 CONTINUE
WRITE(*,20) N
20 FORMAT(2X,'N=',I2)
END
!程序错误太多,都已改正并上机通过.运行结果是9,没错.

你的 N 没有定义,也没有初始值。
直接开始 N = N + 1 计数,是不靠谱的。
试着加一句:
integer :: N = 0
另外,你这样的写法太古老了。dimension 这个词最好不要用。
程序最好加上 Implicit None 并显式定义所有变量:M,N,j 都要定义,并明确是 integer 类型
Do 循环不要用 continue...

全部展开

你的 N 没有定义,也没有初始值。
直接开始 N = N + 1 计数,是不靠谱的。
试着加一句:
integer :: N = 0
另外,你这样的写法太古老了。dimension 这个词最好不要用。
程序最好加上 Implicit None 并显式定义所有变量:M,N,j 都要定义,并明确是 integer 类型
Do 循环不要用 continue 来结束,直接用 End Do
程序结构要缩进。
Program Main
Implicit None
Integer :: M(12) , N = 0 , j
Open( 10 , File = 'FILE3.DAT' )
Read( 10 , * ) M(:)
Do j=1,12
If ( M(j) >= 60 ) N=N+1
End Do
Write( * , 20 ) N
20 Format(2X,'N=',I2)
End Program Main
这样是不是好看多了

收起