早教吧 育儿知识 作业答案 考试题库 百科 知识分享

fortran求解PROGRAMexINTEGER::m(6),i,j,kDOk=1,6,1callsub1(m(k))ENDDOENDPROGRAMSUBROUTINEsub1(n)REAL::xINTEGER::ncallrandomseed()callrandomnumber(x)n=nint(x*100)RETURNENDSUBROUTINE为什么每次得到的m(1)~m(6)都一样?

题目详情
fortran求解
PROGRAM ex
INTEGER::m(6),i,j,k
DO k=1,6,1
call sub1(m(k))
ENDDO
END PROGRAM
SUBROUTINE sub1(n)
REAL::x
INTEGER::n
call random_seed ()
call random_number (x)
n=nint(x*100)
RETURN
END SUBROUTINE
为什么每次得到的m(1)~m(6)都一样?
▼优质解答
答案和解析
PROGRAM ex
INTEGER::m(6),i,j,k
call random_seed ()
DO k=1,6,1
call sub1(m(k))
ENDDO
END PROGRAM
SUBROUTINE sub1(n)
REAL::x
INTEGER::n
call random_number (x)
n=nint(x*100)
write(*,*) n
RETURN
END SUBROUTINE
random_seed 只需调用一次既可