尺寸变量

时间:2013-11-13 13:38:37

标签: fortran

我正在为FORTRAN写一个学校的课程。我们必须编写一个用户输入多个等级的程序。有了这么多的成绩,我必须让程序多次提示用户输入成绩。我想我会使用维度变量,但我不知道如何。

到目前为止,我有这个,有明显的编译错误:

INTEGER :: NumGrades
REAL :: GradeAverage
INTEGER :: N

WRITE (*,*) 'Enter Number of grades: '
READ (*,*) NumGrades
N = NumGrades

REAL, Dimension(N) :: Grade

WRITE (*,*) 'Enter the individual grades: '
READ (*,*) Grade

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

假设您的作业未逾期,您可以使用分配。它基本上允许您在初始化变量后给出数组大小。

INTEGER :: NumGrades
REAL :: GradeAverage !Not exactly sure what this is used for in this snippet
REAL, DIMENSION(:), ALLOCATABLE :: Grade
INTEGER :: i !Used for loop counters    

WRITE (*,*) 'Enter Number of grades: '
READ (*,*) NumGrades

allocate(Grade(NumGrades)) !size(Grade) == NumGrades or whatever you inputted

WRITE (*,*) 'Enter the individual grades: '
!DO i = 1, NumGrades
    READ(*, *) Grade(i)
!END DO

GradeAverage = sum(Grade) / size(Grade) !Just thought I'd throw this in

维度(:)让计算机知道还没有定义的大小。

或者,如果您不关心内存约束,可以将数组大小设置为最大整数值。

希望你的任务得到这个!

编辑 - 哦是的,不要忘记解除分配(等级)。