|
Kategori: FORTRAN | Yorum 0 | Hit 620
! ---------------------------------------------------------------
! PROGRAM Reverse:
! This program reverses the order of an input array.
! ---------------------------------------------------------------
PROGRAM Reverse
IMPLICIT NONE
INTEGER, PARAMETER :: SIZE = 30 ! maximum array size
INTEGER, DIMENSION(1:SIZE) :: a ! input array
INTEGER :: n ! actual input array size
INTEGER :: Head ! pointer moving forward
INTEGER :: Tail ! pointer moving backward
INTEGER :: Temp, i
READ(*,*) n ! read in the input array
READ(*,*) (a(i), i = 1, n)
WRITE(*,*) "Input array:" ! display the input array
WRITE(*,*) (a(i), i = 1, n)
Head = 1 ! start with the beginning
Tail = n ! start with the end
DO ! for each pair...
IF (Head >= Tail) EXIT ! if Head crosses Tail, exit
Temp = a(Head) ! otherwise, swap them
a(Head) = a(Tail)
a(Tail) = Temp
Head = Head + 1 ! move forward
Tail = Tail - 1 ! move backward
END DO ! loop back
WRITE(*,*) ! display the result
WRITE(*,*) "Reversed array:"
WRITE(*,*) (a(i), i = 1, n)
END PROGRAM Reverse