! 例題 6-1 成績のソート(置換え法) [配列の基本 ] PROGRAM ex6_1 IMPLICIT NONE INTEGER :: m, mark( 1 : 100 ), n = 0, max, maxi, i, j DO WHILE ( n <= 99 ) PRINT *, 'Input mark, or negative one to stop: ' READ *, m IF ( m < 0 ) EXIT n = n + 1 mark( n ) = m END DO ! sorting DO i = 1, n - 1 max = mark( i ) maxi = i DO j = i + 1, n IF ( mark( j ) > max ) THEN max = mark( j ) maxi = j END IF END DO IF ( maxi /= i ) THEN mark( maxi ) = mark( i ) mark( i ) = max END IF END DO ! output DO i = 1, n PRINT '( 1X, "rank", I3, " = ", I10 )', i, mark( i ) END DO END PROGRAM ex6_1