爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: nunu18

[求助] 循环读写计算多个文件出错,希望大神能帮帮忙,在线等待回复

[复制链接]
 楼主| 发表于 2018-2-2 22:51:12 | 显示全部楼层
乌兰兰111 发表于 2018-2-2 17:47
哦,这样呀,一直不太明白这个~~  自己看书的时候书上说的动态数组可能和这个混了,嘻嘻,谢谢你的回复
...

嗯,没问题,问题解决了我会把正确的贴出来,也感谢你的回复
密码修改失败请联系微信:mofangbao
发表于 2018-2-4 17:54:41 | 显示全部楼层
楼主这个错误有点马虎啊,你要站在电脑的角度去思考程序是怎么运行的
这个是一个很常见的数组越界的错误

【问题分析】
一、首先看声明变量和数组的语句
type(station),dimension (n)::sta
定义了数组sta,其数组上界是165,也就是总时间n的大小

二、看程序具体调用时,数组标号怎么运行的,问题就出在这
do j=1,n  【让j从1到n,步长1自加】
if(sta(j).yy==sta(j+1).yy.and.sta(j+1).yy==sta(j+2).yy)then
....(余下代码略)

当j运行到n-1(j=164)的时候,这个if语句调用的数组sta就开始有问题了
第一个sta是sta(164),好的可以
第二、第三个sta是sta(165),没问题,正好是这个数组的最后一个数
第四个sta问题就来了,这个时候,程序内部的j是164,而j+2是166,这个就越界了

具体怎么改楼主自己练习一下吧

点评

刚好需要: 5.0 谢谢共享: 5.0
刚好需要: 5 谢谢共享: 5
问题解决了~~~谢谢  发表于 2018-2-5 10:13

评分

参与人数 1金钱 +10 收起 理由
lqouc + 10

查看全部评分

密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

发表于 2018-2-4 18:53:05 | 显示全部楼层
这个。。我感觉,好吧= =同等大神
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2018-2-5 10:12:39 | 显示全部楼层
Masterpiece 发表于 2018-2-4 17:54
楼主这个错误有点马虎啊,你要站在电脑的角度去思考程序是怎么运行的
这个是一个很常见的数组越界的错误
...

太太感谢了,问题还真是数组越域的问题,谢谢楼主~~~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表