[問題] 迴圈問題(數值無法變換?)

看板Fortran作者 (小鐵)時間15年前 (2009/03/09 08:45), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
再次麻煩大大幫我看看我的程式到底哪裡有問題 裡面的小迴圈已將最小的i值寫出 但是做外面的迴圈時裡面的迴圈坐的數值卻是重複做同樣的數據 如何讓裡面的迴圈做不同的數據? 請幫我看看哪裡有問題 感謝 program work implicit none integer i,j,k(100) REAL r(10),sum,sum1,mean CALL init_random_seed( ) CALL RANDOM_NUMBER(r) write(*,*)r sum1=0.0 do j=1,10 i=1 sum=0.0 do while (sum .LE. 1) sum=sum+r(i) i=i+1 end do write(*,*)i-1 write(*,*)sum k(j)=i-1 sum1=sum1+k(j) end do write(*,*)sum1 end program work SUBROUTINE init_random_seed() INTEGER :: i, n, clock INTEGER, DIMENSION(:), ALLOCATABLE :: seed CALL RANDOM_SEED(size = n) ALLOCATE(seed(n)) CALL SYSTEM_CLOCK(COUNT=clock) seed = clock + 37 * (/ (i - 1, i = 1, n) /) CALL RANDOM_SEED(PUT = seed) DEALLOCATE(seed) END SUBROUTINE -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.96.4

03/09 10:48, , 1F
因為你的 r 在一開始呼叫亂數以後就固定了啊!
03/09 10:48, 1F

03/09 10:49, , 2F
是要問這個嗎?
03/09 10:49, 2F
文章代碼(AID): #19j6QHLB (Fortran)
文章代碼(AID): #19j6QHLB (Fortran)