那个要么是变量没有赋值或初始化,或者计算溢出了~~~
你的程序主要问题是没有搞清主程序和子程序间的变量传递问题。 代码应该修正如下:
program ex99
real :: d
integer :: i
integer, parameter :: limit=5
do i=1,limit
d = sub()
write(*,*) d
end do
end program ex99
function sub()
real :: k, r
real, parameter :: pi = 3.1415
write(*,*) "input k"
read(*,*) k
write(*,*) "inputr"
read(*,*) r
sub=k*pi*r
end function
运行:
input k
2
inputr
1
6.28299999
input k
1
inputr
1
3.14150000
input k
。。。