回 帖 发 新 帖 刷新版面

主题:赋值问题

请教问题
 
11      si(i)=PhaseType
    if(AmpliType.eq.-99999) then
        cb(i)=0
12        si(i)=0
        if(ic.eq.1.and.i.ne.1) then
        ic=0
        is(i)=1
         is(1)=i
        cb(i)=1
        cb(1)=0
        endif
    endif
22    si(i)=PhaseType
33    write(*,'(3i6)') PhaseType,si(i),I

上面那段程序里,我把 si(i)=PhaseType放在11段位置赋值时33段语句输出结果如下
     0     0     1
     0     0     2
     0     0     3
     2     0     4
     2     0     5
     1     1     6
     1     1     7
     1     1     8
     1     1     9
     1     1    10

第一列和第二不一样,结果不正确.

移到22的位置si(i)=PhaseTyp的赋值时,33段语句输出结果是正确的,
     0     0     1
     0     0     2
     0     0     3
     2     2     4
     2     2     5
     1     1     6
     1     1     7
     1     1     8
     1     1     9
     1     1    10
检查发现,只要去除12行的语句,就不会出现赋值不正确的问题。我检查si的定义没有错,不知道是什么原因。多谢了。

回复列表 (共1个回复)

沙发

"赋值不正确"  那咋不正确呢? 不正确有出错提示? 那提示呢?
代码既不能测试, 也没有给出变量定义...  怎么"猜"你的"不正确"?

我来回复

您尚未登录,请登录后再回复。点此登录或注册