主题:提问一个很浅显的问题
GuiltyOne
[专家分:60] 发布于 2012-06-18 16:03:00
我要做两个数组的比对,输出两个数组中不同的数值,例如aa(i)=1,2,3 bb(j)=3,4,5 需要怎么比对才能输出1,2,4,5,求教。 很浅显的问题,但是我的思路很绕而且得不到想要的结果[em10]
回复列表 (共7个回复)
沙发
臭石头雪球 [专家分:23030] 发布于 2012-06-18 20:45:00
首先对 aa 进行循环。
对每一个元素,再在 bb 中一一比对,如果 bb 中每一个元素都不等于 aa,则输出。
否则进入下一次对 aa 的循环。
板凳
GuiltyOne [专家分:60] 发布于 2012-06-18 21:00:00
请问下石头哥,我这代码哪里有问题:
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 楼
GuiltyOne [专家分:60] 发布于 2012-06-18 21:02:00
为了简化思路,我只输出了aa(i)的部分,结果出现了这个结果,不大妙啊
4 楼
臭石头雪球 [专家分:23030] 发布于 2012-06-18 21:43:00
先读入数据。
然后再开始比较循环。
不要把读入数据跟比较放在一起。太乱。
5 楼
GuiltyOne [专家分:60] 发布于 2012-06-18 21:55:00
石头哥,改好了,代码如下,依然是只输出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 楼
臭石头雪球 [专家分:23030] 发布于 2012-06-18 23:40:00
[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 楼
GuiltyOne [专家分:60] 发布于 2012-06-19 00:23:00
太感谢石头哥了,很晚了,祝您晚安,明天我再好好研究,有疑问的话再找你帮忙哈[em12]
我来回复