用fortran编写将3个数组加成一个数组的程序,数据在txt文件里(160列60行的记录降雨的数字)

programhahhahaintegert,m,ireal,dimension(1:180,1:160)::dreal,dimension(1:60,1:160)::a... program hahhaha
integer t,m,i
real,dimension(1:180,1:160)::d
real,dimension (1:60,1:160)::a,b,c
open(12,file='f:\h500\exam4\data\r1606.txt')
read(12,*)((a(t,m),m=1,160),t=1,60)
open(12,file='f:\h500\exam4\data\r1607.txt')
read(12,*)((b(t,m),m=1,160),t=1,60)
open(12,file='f:\h500\exam4\data\r1608.txt')
read(12,*)((c(t,m),m=1,160),t=1,60)
do m=1,160
i=0
do while (i<60)
d(i,m)=a(t,m)
i=i+1
end do
do while (i<120)
d(i,m)=b(t+60,m)
i=i+1
end do
do while (i<180)
d(i,m)=c(t+120,m)
i=i+1
end do
end do
end
合成后的数组列数不变,行数变成里原来的3倍,eg原数组a(1,1,),b(1,1),c(1,1)合成后的数组d(i,m)为d(1,1)=a(1,1)d(2,1)=b(1,1) d(3,1)=c(1,1).我编得这个程序执行的时候出现forrt severe 161的错误,求大神帮忙看下哪里需要改正,怎么改,谢谢哦
展开
 我来答
百度网友0d1ca12
推荐于2016-11-26 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:63
采纳率:100%
帮助的人:44.6万
展开全部
这个错误的意思是数组越界。
你做循环的时候循环变量是i,但是a,b,c数组里的循环变量是t,而t没有随着循环变化。这是其一;
你数组越界的原因是把i=i+1放到了数组赋值语句的后面,第一次循环的时候i=0,而你定义的d数组的第一维是从1开始变化的,并没有d(0,1)这个元素,所以越界。
我感觉你这个程序还有很大改进的余地。
更多追问追答
追问
1,怎样使t随着循环呢?
2,我试了试把i=i+1放在里赋值语句前面可是还是数组超了。。。
追答
跪了- -你仔细看看啊。其实这个循环只用i就可以解决了,t根本没有必要存在。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式