Проблема с сортировкой массива и печатью его сбоку в Fortran 95 - PullRequest
0 голосов
/ 11 апреля 2011

Я пытаюсь взять мой массив чисел, основанный на переменной, которая определяет его размер, и отсортировать его.

Массив создается с использованием начального числа случайных чисел на Фортране 95. Однако, когда я пытаюсь его отсортировать, у меня возникают большие проблемы. Он компилируется нормально, но массив напечатан с большим количеством звездочек.

Кроме того, я хотел напечатать свой массив сбоку (например, что-то вроде этого: 1 2 3 4 и т. Д.), Но мне даже не удалось это сделать. Я понимаю, что это должно быть сделано с использованием Advance = "no" в цикле DO, но, очевидно, это также ошибочно.

Ниже приведен код, который я использую. Если кто-то захочет сообщить мне, где я могу ошибаться, я был бы очень благодарен. Спасибо за ваше время.

    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

Спасибо!

1 Ответ

2 голосов
/ 11 апреля 2011

Между вашими номерами нет пробелов, но вы также циклически перемещаетесь по массиву, но не увеличиваете индекс ... вы просите компьютер напечатать весь массив при каждом взаимодействии.

Я думаю, это должно быть: WRITE (*, 23, ADVANCE = "NO") num (i)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...