回 帖 发 新 帖 刷新版面

主题:提问一个很浅显的问题

我要做两个数组的比对,输出两个数组中不同的数值,例如aa(i)=1,2,3    bb(j)=3,4,5   需要怎么比对才能输出1,2,4,5,求教。        很浅显的问题,但是我的思路很绕而且得不到想要的结果[em10]

回复列表 (共7个回复)

沙发

首先对 aa 进行循环。

对每一个元素,再在 bb 中一一比对,如果 bb 中每一个元素都不等于 aa,则输出。

否则进入下一次对 aa 的循环。

板凳


请问下石头哥,我这代码哪里有问题:
do i=1,3
  read(11,'(i2)')aa(i)
    do j=1,3
      read(12,'(i2)',end=111)bb(j)
        if(aa(i) .ne. bb(j))then  
          write(13,'(i2)')aa(i)
        endif 
    enddo 
enddo

这个代码运行的结果为
1
1
1
2
2
2
3
3
我有些凌乱[em10]

3 楼


为了简化思路,我只输出了aa(i)的部分,结果出现了这个结果,不大妙啊

4 楼

先读入数据。

然后再开始比较循环。

不要把读入数据跟比较放在一起。太乱。

5 楼


石头哥,改好了,代码如下,依然是只输出aa(i)的数据:
do i=1,3
  read(11,'(i2)')aa(i)
enddo

do j=1,3
  read(12,'(i2)')bb(j)
    do i=1,3
      if(aa(i) .ne. bb(j))then  
        write(13,'(i2)')aa(i)
      endif
    enddo 
enddo

运算结果为:
1
2
1
2
3
1
2
3

6 楼

[quote]
[font=宋体][color=#FF0000]Program [/color][color=#000000]BySnowStone
  [/color][color=#FF0000]Implicit None
  Real [/color][color=#000080]:: [/color][color=#000000]aa[/color][color=#000080]([/color][color=#800080]3[/color][color=#000080]) = (/[/color][color=#800080]1[/color][color=#000080],[/color][color=#800080]2[/color][color=#000080],[/color][color=#800080]3[/color][color=#000080]/) , [/color][color=#000000]bb[/color][color=#000080]([/color][color=#800080]3[/color][color=#000080]) = (/[/color][color=#800080]3[/color][color=#000080],[/color][color=#800080]4[/color][color=#000080],[/color][color=#800080]5[/color][color=#000080]/)
  [/color][color=#FF0000]Integer [/color][color=#000000]i

  [/color][color=#008000]!Do i = 1 ,3
  !  Read( 11 , * ) aa(i)
  !  Read( 12 , * ) bb(i)
  !End Do

  [/color][color=#FF0000]Do [/color][color=#000000]i [/color][color=#000080]= [/color][color=#800080]1 [/color][color=#000080], [/color][color=#800080]3
    [/color][color=#FF0000]If [/color][color=#000080]( [/color][color=#808080].Not.[/color][color=#FF0080]any[/color][color=#000080]( [/color][color=#000000]bb [/color][color=#000080]== [/color][color=#000000]aa[/color][color=#000080]([/color][color=#000000]i[/color][color=#000080]) ) ) [/color][color=#FF0000]write[/color][color=#000080]( * , * )  [/color][color=#000000]aa[/color][color=#000080]([/color][color=#000000]i[/color][color=#000080])
  [/color][color=#FF0000]End Do
  Do [/color][color=#000000]i [/color][color=#000080]= [/color][color=#800080]1 [/color][color=#000080], [/color][color=#800080]3
    [/color][color=#FF0000]If [/color][color=#000080]( [/color][color=#808080].Not.[/color][color=#FF0080]any[/color][color=#000080]( [/color][color=#000000]aa [/color][color=#000080]== [/color][color=#000000]bb[/color][color=#000080]([/color][color=#000000]i[/color][color=#000080]) ) ) [/color][color=#FF0000]write[/color][color=#000080]( * , * )  [/color][color=#000000]bb[/color][color=#000080]([/color][color=#000000]i[/color][color=#000080])
  [/color][color=#FF0000]End Do
  
End Program [/color][color=#000000]BySnowStone[/color][/font][/quote]

7 楼


太感谢石头哥了,很晚了,祝您晚安,明天我再好好研究,有疑问的话再找你帮忙哈[em12]

我来回复

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