早教吧作业答案频道 -->其他-->
关于fortran6.PROGRAMMAIN2N=3Y=(SUM(N)+SUM(N+1)+SUM(N+2))/(SUM(N+3)+SUM(N+4))WRITE(*,*)‘Y=’,YENDFUNCTIONSUM(X)INTEGERXSUM=0DO10I=1,XSUM=SUM+I10CONTINUEEND不管怎么运行上面总是提示Error:Anarray-valuedargumentisrequiredin
题目详情
关于fortran6.
PROGRAM MAIN2
N=3
Y=(SUM(N)+SUM(N+1)+SUM(N+2))/(SUM(N+3)+SUM(N+4))
WRITE (*,*) ‘Y=’,Y
END
FUNCTION SUM(X)
INTEGER X
SUM=0
DO 10 I=1,X
SUM=SUM+I
10 CONTINUE
END
不管怎么运行 上面总是提示 Error:An array-valued argument is required in this context.[SUM]
Y=(SUM(N)+SUM(N+1)+SUM(N+2))/(SUM(N+3)+SUM(N+4))
这是什么原因
但是我在上面程序里加了一句 REAL SUM(7) 上面没有错误 但是却得不到结果
PROGRAM MAIN2
N=3
Y=(SUM(N)+SUM(N+1)+SUM(N+2))/(SUM(N+3)+SUM(N+4))
WRITE (*,*) ‘Y=’,Y
END
FUNCTION SUM(X)
INTEGER X
SUM=0
DO 10 I=1,X
SUM=SUM+I
10 CONTINUE
END
不管怎么运行 上面总是提示 Error:An array-valued argument is required in this context.[SUM]
Y=(SUM(N)+SUM(N+1)+SUM(N+2))/(SUM(N+3)+SUM(N+4))
这是什么原因
但是我在上面程序里加了一句 REAL SUM(7) 上面没有错误 但是却得不到结果
▼优质解答
答案和解析
呵呵.
SUM函数是Fortran的一个内部函数,作用是求一个数组所有元素的和.因此要求SUM(X)的参数X必须是一个数组,不能是一个数.因此楼主的程序会提示:
Error: An array-valued argument is required in this context. [SUM]
你程序中前N个自然数求和函数和Fortran内部函数重名了,且未对该函数进行声明,Fortran是按照它内部的函数运行的.
解决方法:
1、把你的前N个自然数求和函数改成别的名字,如SUM2
2、如果你实在不想改函数名字,要在PROGRAM MAIN2后面加上一句SUM函数的声明:
EXTERNAL SUM
3、楼主编程的习惯好像不太好啊,变量和子函数都没有声明类型,开头也没有IMPLICIT NONE
SUM函数是Fortran的一个内部函数,作用是求一个数组所有元素的和.因此要求SUM(X)的参数X必须是一个数组,不能是一个数.因此楼主的程序会提示:
Error: An array-valued argument is required in this context. [SUM]
你程序中前N个自然数求和函数和Fortran内部函数重名了,且未对该函数进行声明,Fortran是按照它内部的函数运行的.
解决方法:
1、把你的前N个自然数求和函数改成别的名字,如SUM2
2、如果你实在不想改函数名字,要在PROGRAM MAIN2后面加上一句SUM函数的声明:
EXTERNAL SUM
3、楼主编程的习惯好像不太好啊,变量和子函数都没有声明类型,开头也没有IMPLICIT NONE
看了 关于fortran6.PRO...的网友还看了以下:
已知Rt△ABC中,角B=90°,角A=60°,AB=2根号3cm,点O从C出发,沿CB以每秒1c 2020-05-13 …
如图,在平面直角坐标系中,点A(2,4),B(5,0)动点p从点B出发沿BO向终点O运动如图所示, 2020-05-16 …
在平面直角坐标系中,梯形ABOC的顶点A(6,8)、C(10,0),AB∥OC,点P从C点出发,向 2020-06-14 …
阅读学习:给定一列数,我们把这列数中的第一个数记为,第二个数记为,第三个数记为,依次类推,第n个数 2020-07-13 …
如图所示,在射线OM上有三点A、B、C.OA=20,AB=m,BC=n,m,n满足|m-6n|=- 2020-07-24 …
已知直线y=-1/2x+4分别与x轴,y轴交于A·B两点,P从A点出发,以每秒一个单位向原点O运动 2020-07-26 …
如图,在直角坐标系中,点A,B分别在x轴,y轴上,点A的坐标为(-1,0),∠ABO=30°,线段 2020-07-29 …
如图,一水平弹簧振子,O为平衡位置,振子在B、C之间做简谐运动,设向右为正方向,则振子()A.由C向 2020-12-31 …
已知线段AB=4,点O是线段上一点,C,D分别是线段OA,OB的中点,小明据此很轻松地求得CD=2, 2021-01-05 …
如图所示,物体从O点开始做自由落体运动,先后经过O点正下方A、B两点,此过程中,从O运动到B所用时间 2021-01-22 …