2017-04-07 4 views
-2

Ich habe zwei Arrays: A = [1 2 3 4] und B = [5 6 7 8]. Wie kann ich A & B in ein Array C zusammenführen und dann C in aufsteigender Reihenfolge sortieren? Ich brauche dies in Fortran 77.Zusammenführen von Arrays in Fortran 77

+1

Hallo und willkommen zu Stackoverflow! Dies ist kein Code-Schreibdienst. Bitte posten Sie Beispiele von dem, was Sie versucht haben, und die genauen Probleme, denen Sie begegnet sind. Weitere Informationen finden Sie unter http://stackoverflow.com/help/how-to-ask. – betseyb

+0

auch klar, warum Sie moderne Fortran nicht verwenden können. – agentp

Antwort

-1

hier zu tun, ist eine naive Implementierung der Verkettung/Sortieralgorithmus:

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

Dies ist ein Weg von Fortran 77 und etwas vom modernen Fortran. Und es ist unter keinem Standard legal. – francescalus

+0

@francescalus danke, dass du das notiert hast. Wie ich bereits erwähnte, ist dies eine naive Implementierung, die mit gfortran auf meiner Maschine kompiliert wurde. Es verkettet zwei Arrays und sortiert sie in aufsteigender Reihenfolge. Bitte zögern Sie nicht, meine Antwort zu bearbeiten, damit sie F77-konform ist. – Sergio

+1

Entweder chide OP für den Versuch, SO als Code-Schreibdienst zu verwenden, * oder * Löffel-Feed sie. Nicht beide. –

Verwandte Themen