PROGRAM ex5_4 
IMPLICIT NONE 
INTEGER :: n = 0, mark, max
REAL :: w = 0.0E0, v = 0.0E0, mean, sd
DO n = 1, 1000 
IF (n==1)THEN
max=mark
ELSE IF(mark>max)THEN
max=mark
END IF
PRINT *, '点数（整数，終了は負の数）は？' 
READ *, mark 
IF ( mark < 0 ) EXIT                   ! これでループを抜ける 
w = w + mark 
v = v + mark ** 2 
END DO 
n = n - 1 
IF ( n > 0 ) THEN 
mean = w / n 
sd = SQRT( v / n - mean ** 2 ) 
PRINT '( 1X, "平均点   = ", F5.1 )', mean 
PRINT '( 1X, "標準偏差 = ", F5.1 )', sd 
END IF 
PRINT '( 1X, "生徒総数 = ", I5 )', n 
PRINT '( 1x,"最高点=", I5)', max
END PROGRAM ex5_4