3個のデータの中央値でいいなら二回、最小値を取れば求まることになる。
以下では mask を使って不用なデータを排除している。
Fortran90 ではなく、Fortran95 の機能を多少使っているが。
fortran
1program Hello
2 implicit none
3 real :: a(10), ans
4 logical :: mask(size(a))
5 integer :: i, k
6
7 call random_number(a)
8
9 do i = 2, 9
10 print *, 'i=', i, a(i-1:i+1)
11 mask = .false.
12 mask(i-1:i+1) = .true.
13 k = minloc(a, dim = 1, mask = mask)
14 mask(k) = .false.
15 ans = minval(a, mask)
16 print *, ans
17 print *
18 end do
19end program Hello
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。