fortran 中出现 symbol N is not permitted in a specification expression 要怎么解决?急

2024年11月23日 03:50
有3个网友回答
网友(1):

fib是个数组,不能用变量n做为大小。他也不会随着你输入n的大小而自动改变大小。

如果你想动态改变大小,请用allocatable数组。

program Ex3
integer :: i, n
integer , allocatable :: fib( : ) !// 定义fib为可分配,大小待定
print *, " Please input the limit number."
read (*,*) n
Allocate( fib(n) ) !// 动态分配 fib 大小为 n
if ( n == 1 ) then
print *, fib(1)
end if
if ( n == 2 ) then
print *, fib(1), ",", fib(2)
end if
if ( n > 2 ) then
print *, fib(1), fib(2)
do i = 1, n
fib(n) = fib(n-1) + fib(n-2)
print *, fib(n)
end do
end if
Deallocate( fib ) !// 释放 fib 的内存空间
end program Ex3

网友(2):

integer :: i, n, fib(n)
fib(n) = fib(n-1) + fib(n-2)

网友(3):

用动态数组,把fib(N)定义为fib(:)。一楼正解