0
크기를 결정하고 정렬하는 변수를 기반으로 배열을 가져 오려고합니다.배열 정렬 및 포트란 95 옆으로 인쇄
배열은 Fortran 95의 난수 시드를 사용하여 만들어집니다. 그러나 정렬하려고하면 큰 문제가 발생합니다. 그것은 잘 컴파일하지만 배열은 그것에 별표가 많이 인쇄됩니다.
또한 배열을 옆으로 인쇄하고 싶습니다 (예 : 1 2 3 4 4 등). 그런데도 실패했습니다. DO 루프 내에서 Advance = "no"를 사용하여 수행해야한다는 것을 알고 있지만 분명히 잘못된 것입니다.
아래 코드는 제가 사용하고있는 코드입니다. 누군가 내가 잘못 생각할지도 모르는 곳에서 알려 주면 매우 감사 할 것입니다. 시간 내 줘서 고마워.
SUBROUTINE Sorter(num, numinteger)
INTEGER, INTENT(OUT):: num(100)
INTEGER, INTENT(IN):: numinteger
DO i=1, (numinteger-1)
min=num(i)
pos=i
DO j=i,numinteger
IF (num(j)<min)THEN
min=num(j)
pos=j
END IF
END DO
temp=num(i)
num(i)=min
num(pos)=temp
END DO
PRINT*, " "
PRINT*, "Sorted Numbers"
DO i=1, numinteger
WRITE(*,23,ADVANCE="NO") num
23 FORMAT (I2)
END DO
END SUBROUTINE
감사!
는 단순히 배열로 이동할 수있는 최대 수를 명시 할 NUM (100)에서 (100)를 사용했을
는 난이 있어야한다고 생각. 사실 숫자가 2 자리 이상이되는 것을 원하지 않습니다. 그래서 내가 임의의 숫자를 만드는 방식이 잘못 되었기 때문에 그것이라고 생각합니까? – EuropaDust또한 FORMAT 문을 다음과 같이 변경하고자 할 수도 있습니다. FORMAT (I2, 1X) – Jess
단순히 num 대신 num을 사용하면 큰 차이가 나고 많은 혼란을 겪습니다. 지금은 잘 작동합니다. Jess !!! – EuropaDust