24小时热门版块排行榜    

查看: 1198  |  回复: 8

19870617

木虫 (著名写手)

[求助] 新手请教最大值输出问题

自己编的很小的一段程序

  
program main
    implicit none
    integer :: n,i
    real(8) ::pi,u1,u2,r   
   pi=3.1415926535
    call random_seed ()
    n=1000      
   do i=1,n
    call random_number(u1)
    call random_number(u2)
    r=sqrt(-log(u1))*cos(2*pi*u2)  
    print *,r
    enddo
    end
现在我想把r的值存储到一个数组当中,以后每次调用数组中的一个r值,并输出数组中随机生成的r的最大值,请问大侠该如何编写,刚刚学习FORTRAN,希望大家多多指教,不胜感激。
金币少了点,希望大家多多帮忙,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢应助 2012-08-28 00:16:19
把 r 定义为一个数组就可以了……

找本入门的书看一下吧
2楼2012-08-27 17:56:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

19870617

木虫 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-08-27 17:56:59
把 r 定义为一个数组就可以了……

找本入门的书看一下吧

r定义为数组?一维大小为1000嘛?试了一下输出的r有3列,感觉不对啊
3楼2012-08-27 18:30:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 19870617 at 2012-08-27 18:30:01
r定义为数组?一维大小为1000嘛?试了一下输出的r有3列,感觉不对啊...

你是怎么输出的?

一个一维数组为啥会输出三列(二维)?
4楼2012-08-27 19:01:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

19870617

木虫 (著名写手)

引用回帖:
4楼: Originally posted by snoopyzhao at 2012-08-27 19:01:09
你是怎么输出的?

一个一维数组为啥会输出三列(二维)?...

print *,r 和write(*,*) r这样都试过了,都是3列,我也觉得奇怪呀
5楼2012-08-27 20:00:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
5楼: Originally posted by 19870617 at 2012-08-27 20:00:41
print *,r 和write(*,*) r这样都试过了,都是3列,我也觉得奇怪呀...

把完整的代码贴出来吧……
6楼2012-08-27 20:07:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

19870617

木虫 (著名写手)

引用回帖:
6楼: Originally posted by snoopyzhao at 2012-08-27 20:07:45
把完整的代码贴出来吧……...

您好!源码是这样的
        program main
     implicit none
     integer :: n,i
     real(8) ::pi,u1,u2,maxr
         real(8) :: r(1)  
    pi=3.1415926535
     call random_seed ()
     n=1000      
    do i=1,n
     call random_number(u1)
     call random_number(u2)
     r=sqrt(-log(u1))*cos(2*pi*u2)  
     print *,r
     enddo
         maxr=maxval(r)
         print *,"the largest is",maxr
    end

输出现在是1列了,但是求最大值的时候输出的maxr是最后一个r值,而不是最大值,请问maxval这样用对嘛?
7楼2012-08-27 21:54:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
19870617: 金币+5, ★★★★★最佳答案, 谢谢! 2012-08-28 08:42:26
引用回帖:
7楼: Originally posted by 19870617 at 2012-08-27 21:54:47
您好!源码是这样的
        program main
     implicit none
     integer :: n,i
     real(8) ::pi,u1,u2,maxr
         real(8) :: r(1)  
    pi=3.1415926535
     call random_seed ()
     n=1000      
    d ...

你还是去找本书看一下吧……
CODE:
program main
   implicit none
   integer :: n,i
   real(8) ::pi,u1,u2,maxr
   real(8) :: r(1000)  
   pi=3.1415926535
   call random_seed ()
   n=1000      
   do i=1,n
      call random_number(u1)
      call random_number(u2)
      r(i)=sqrt(-log(u1))*cos(2*pi*u2)  
      print *, r(i)
   enddo
   maxr=maxval(r)
   print *,"the largest is",maxr
end

» 本帖已获得的红花(最新10朵)

8楼2012-08-27 22:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

19870617

木虫 (著名写手)

送鲜花一朵
引用回帖:
8楼: Originally posted by snoopyzhao at 2012-08-27 22:10:01
你还是去找本书看一下吧……


program main
   implicit none
   integer :: n,i
   real(8) ::pi,u1,u2,maxr
   real(8) :: r(1000)  
   pi=3.1415926535
   call random_seed ()
   n=1000      
  ...

嗯,谢谢!还是要静下心来慢慢学!
9楼2012-08-27 23:56:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 19870617 的主题更新
信息提示
请填处理意见