! game1.f90 SJ PROGRAM Game1 ! input constants INTEGER, PARAMETER :: N = 10, MAXNUM = 5, GAME = 3 INTEGER :: seed = 43; ! normal variables INTEGER :: round, maxn, winner, maxwin; ! number arrays INTEGER, DIMENSION(N) :: num, wins, winners; ! begin wins = 0 round = 0 rounds: DO round = round + 1 WRITE(*,*) '' WRITE(*,*) 'Round ', round ! new numbers DO i=1,N num(i) = ran(seed) * MAXNUM END DO WRITE(*,*) 'Nums are ', num ! find maximum maxn = MAXVAL(num); ! find locations WHERE ( num == maxn ) winners = 1 ELSEWHERE winners = 0 ENDWHERE WRITE(*,*) COUNT(winners == 1), 'winners ', winners ! add to wins table wins = wins + winners WRITE(*,*) 'Wins are ', wins ! find maximum maxwin = MAXVAL(wins) ! check for exit IF (maxwin >= GAME) EXIT rounds END DO rounds ! print final results WRITE(*,*) DO i=1,N IF (wins(i) == GAME) THEN WRITE(*,*) 'Winner is ', i END IF END DO END PROGRAM Game1