fortran程序两个数组怎样按大小排列其中的元素?

最近用fortran要编程序,好比有一个20个元素的一维数组XA,DIMENSION(1:20)::XA,有一个40个元素的一维数组XB,DIMENSION(1:40):... 最近用fortran要编程序,好比有一个20个元素的一维数组XA,DIMENSION(1:20) ::XA,有一个40个元素的一维数组XB,DIMENSION(1:40) ::XB ,怎样编写程序将这两个数组中的元素按大小排列并输出啊,其中XA和XB还有可能有的元素相同,比如XA(4)可能和XB(5)值一样,如果元素值相同的话,只输出一个。求高人指点,感激不尽!
还有 XA和XB两个数组中的元素有规律,好比XA中是XA(1)=1,XA(2)=2,XA(3)=3........XA(20)=20, XB中依次是2,4,6,8.......到第四十个数。如何将这60个数从小到大排列,输出?
展开
 我来答
gcbjoy
推荐于2016-05-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2147万
展开全部
	dimension ia(20),ib(20),ic(60)

m=20
n=40
       do 10 i=1,m
ia(i)=i*2
10 continue
do 20 i=1,n
ib(i)=i*3
20 continue

       k=1
k1=1
k2=1

9 if (ia(k1).le.ib(k2)) then
ic(k)=ia(k1)
k=k+1
k1=k1+1
else
ic(k)=ib(k2)
k=k+1
k2=k2+1
endif
if ((k1.le.m).and.(k2.le.n)) goto 9

if (k2.le.n) then
99 ic(k)=ib(k2)
     write(*,*) k,k2,ib(k2)  ===========================?????
k=k+1
k2=k2+1
if (k2.le.n) goto 99
endif

if (k1.le.m) then
999 ic(k)=ia(k1)
write(*,*) k,k1,ia(k1)
k=k+1
k1=k1+1
if (k1.le.m) goto 999
endif

do 30 i=1,m+n
30 write(*,*)ic(i) 

pause
end

程序是从同功能的pascal转译过来的,逻辑上没有问题,但后面部分的结果错误,也没查处原因。仅给你提供个思路,供参考。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式