为什么Fortran计算的时候会出现0.000000e什么的

2025-03-09 22:04:41
推荐回答(1个)
回答1:

那个要么是变量没有赋值或初始化,或者计算溢出了~~~

你的程序主要问题是没有搞清主程序和子程序间的变量传递问题。 代码应该修正如下:

    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
 。。。