为什么Fortran计算的时候会出现0.000000e什么的
如这个programex99realkrealdrealrreal,parameter::pi=3.1415integeriinteger,parameter::limi...
如这个
program ex99
real k
real d
real r
real,parameter :: pi=3.1415
integer i
integer,parameter :: limit=5
do i=1,limit
call sub()
write(*,*) d
end do
stop
end
subroutine sub()
write(*,*) "input k"
read(*,*) k
write(*,*) "inputr"
read(*,*) r
d=k*pi*r
return
end
我是新手,不懂求教 展开
program ex99
real k
real d
real r
real,parameter :: pi=3.1415
integer i
integer,parameter :: limit=5
do i=1,limit
call sub()
write(*,*) d
end do
stop
end
subroutine sub()
write(*,*) "input k"
read(*,*) k
write(*,*) "inputr"
read(*,*) r
d=k*pi*r
return
end
我是新手,不懂求教 展开
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
。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询