0

我正在尝试根据一个确定其大小的变量来获取我的数字数组并对其进行排序。

该数组是使用 Fortran 95 上的随机数种子创建的。但是,当我尝试对其进行排序时,我遇到了大麻烦。它编译得很好,但是数组中打印了很多星号。

此外,我想横向打印我的数组(例如:1 2 3 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

谢谢!

4

1 回答 1

2

您的数字之间没有任何空格,但是您也在遍历数组,但没有增加索引……您要求计算机在每次交互时打印整个数组。

我认为这应该是: WRITE(*,23,ADVANCE="NO") num(i)

于 2011-04-11T04:35:39.207 回答