本文介绍了错误:(1)处的'fmedian'不是一个变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想看看这个函数是如何工作的。我试着编写小型的f77代码
I want to see how this function works.I have tried to write small f77 code
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
我应该更改我的图片代码
What should I change in my pic code
当我尝试编译Alexander`s我得到的代码
When I try to compile Alexander`s code I got
print *, fmedian(a,b,c)
1
Warning: Type mismatch in argument ‘x’ at (1); passed INTEGER(4) to REAL(4)
推荐答案
fmedian
是一个函数,即它返回一些东西。但是,您不会在任何地方分配返回值。
fmedian
is a function, i.e. it returns something. However, you do not assign the return value anywhere.
例如,您可以在屏幕上打印 fmedian
的结果:
You could, e.g., print the result of fmedian
to the screen:
print *, fmedian(a,b,c)
另外,您需要声明 fmedian
real fmedian
看起来像:
Your program would then look like:
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
这篇关于错误:(1)处的'fmedian'不是一个变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!