fortran 中数组的初始赋值问题 5

比如我定义一个数组V(5000),然后下面幅值V(5000)=0,那么这句话的意思是不是这个数组中5000个数的初始值都为0?再比如我定义一个数组V(0:5000)=1,... 比如我定义一个数组V(5000),然后下面幅值 V(5000)=0,那么这句话的意思是不是这个数组中5000个数的初始值都为0?
再比如我定义一个数组V(0:5000)=1,2,3;
这里面我有两个问题,一,这个数组里面是不是可以有0到5000个数。
二,那么这个赋值1,2,3又怎么个意思?
求高手解答
展开
 我来答
天河流纹石
2012-12-10 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6685万
展开全部
第一,
V(5000)=0 的意思是,第5000个元素为0,而前4999个没有进行赋值。
如果写为:
V(1:5000)=0,这就表示5000个全部为0了。

第二,

V(0:5000)=1,2,3这样写是非法的。

第三,

V(5000) 也可以写为 V(1:5000) 表示V数组里有5000个数。如果省略了冒号,则默认从1开始
如果写成 V(0:5000)则表示 V 数组有 5001 个数。
追问
我的程序里面 在声明变量里面有这样的语句 
real(8) ::Rho(Nx)=0!其中的Nx为2001
save Rho
那么是不是这样的语句就说明了Rho与Rho(Nx)是有关的了? 有什么样的关系?
并且下面还有一句:Rho=0.d0
那么这一句是不是说明Rho(NX)这个数组里面所有数都为0?
追答
声明语句里:Real(8) :: Rho(Nx) = 0
表示 Rho 数组,有 Nx 个元素,也就是 2001 个元素,且全部是 0。

Rho = 0.d0表示全部元素都赋值为 0
也可以写为:
Rho(:) =0.d0
或者
Rho(:Nx) =0.d0
或者
Rho(1:Nx) =0.d0

但不能写为:
Rho(Nx) =0.d0
因为这样代表Rho的第Nx个元素为0,其他的没有赋值。
chenzp09
2012-12-10 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:33.4万
展开全部
其实这些问题都可以通过一个简单的程序来回答,比如“我定义一个数组V(5000),然后下面幅值 V(5000)=0 ”这个问题,你可以编一段print*, v(1234) 看程序会出现什么结果,然后你就明白了。这些都是编程很基本的调试能力。
授人以鱼不如授之以渔,希望能够帮到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式