2017-04-07 86 views
-2

我有两个阵列:A = [1 2 3 4]B = [5 6 7 8]。我如何将A & B合并到一个数组C中,然后按升序对C进行排序?我需要这样做FORTRAN 77中在Fortran 77中合并阵列

+1

大家好,欢迎计算器!这不是一个代码写入服务;请张贴您尝试过的例子以及您遇到的具体问题。请参阅http://stackoverflow.com/help/how-to-ask获取指导。 – betseyb

+0

也清楚地说明你为什么不能使用现代fortran。 – agentp

回答

-1

这里是一个天真的实现级联/排序算法:

program sort 
    integer size1, size2, sizeout 
    parameter (size1 = 4, size2 = 4) 
    parameter (sizeout = size1 + size2) 
    integer in1(size1), in2(size1) 
    data in1/1,2,4,4/, in2/5,8,7,5/ 
    integer out(sizeout) 

c concatenate arrays 
    do j=1,size1 
     out(j)=in1(j) 
    enddo 
    do j=1,size2 
     out(j+size1)=in2(j) 
    enddo 

c sort the elements of the output array 
4 do j=2,sizeout 
     if(out(j).lt.out(j-1)) then 
      temp =out(j-1) 
      out(j-1)=out(j ) 
      out(j )=temp 
      goto 4 
     endif 
    enddo 

    end 
+1

这是Fortran 77和现代Fortran的一些方法。根据任何标准它都不合法。 – francescalus

+0

@francescalus谢谢你注意到这一点。正如我所提到的,这是在我的机器上用gfortran编译的一个天真的实现。它连接两个数组并按升序对它们进行排序。请随时编辑我的答案,使其符合F77。 – Sergio

+1

要么尝试使用SO作为代码写入服务,要么尝试使用*或*填充它们。不是都。 –