我想看看这个函数是如何工作的。我试过写小f77代码
program pic
implicit none
integer c,a
integer b(5)
external fmedian
c=5
b=(/9,2,7,1,6/)
fmedian(a,b,c)
end
real function fmedian(xmed,x,n)
double precision sum
integer i,n,xmed
dimension x(n)
sum=0.d0
do 10 i=1,n
sum=sum+(x(i)-xmed)/abs(x(i)-xmed)
10 continue
fmedian=sum
return
end
我应该在我的图片代码中更改
当我尝试编译Alexander的代码时,我得到了
print *, fmedian(a,b,c)
1
Warning: Type mismatch in argument ‘x’ at (1); passed INTEGER(4) to REAL(4)
答案 0 :(得分:2)
fmedian
是一个函数,即它返回一些东西。但是,您不会将返回值分配到任何位置。
您可以,例如,将fmedian
的结果打印到屏幕上:
print *, fmedian(a,b,c)
此外,您需要声明fmedian
real fmedian
您的程序将如下所示:
program pic
implicit none
integer c,a
integer b(5)
real fmedian
external fmedian
c=5
b=(/9,2,7,1,6/)
print *, fmedian(a,b,c)
end
real function fmedian(xmed,x,n)
double precision sum
integer i,n,xmed
dimension x(n)
sum=0.d0
do 10 i=1,n
sum=sum+(x(i)-xmed)/abs(x(i)-xmed)
10 continue
fmedian=sum
return
end