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
integer :: i, n, fib(n)
fib(n) = fib(n-1) + fib(n-2)
用动态数组,把fib(N)定义为fib(:)。一楼正解