• ベストアンサー

配列Xの平均値を求める関数副プログラムaver(x,n)の作り方

配列xに入っているデータの平均値を求める関数副プログラムaver(x,n)の作り方がよく分かりません。 function aver(x,n) implicit real*8(a-h,o-z) real*8 x(*) !!この部分が分かりません。!! return end 教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

program test implicit none integer::n real*8,allocatable,dimension(:)::arr !面倒なので直接ソース中に埋め込んでいるが, !本来は別ファイルから読み込み,値の個数に応じて, !allocateしなおすような仕組みを作るべき。 allocate(arr(5)) arr(1) = 57d0 arr(2) = 24d0 arr(3) = 38d0 arr(4) = 92d0 arr(5) = 37d0 !本当は引数渡しではなく,引数のみを関数に渡し, !関数がuboundを行うべきだろうと思う。 n = ubound(arr,1) print *,aver(arr,n) contains real*8 function aver(x,n) real*8,dimension(:)::x integer::n integer::i do i = 1,n aver = aver + x(i) end do aver = aver / n end function end program

0124ponta
質問者

お礼

詳しく教えて下さり、 ありがとうございました。 参考になりました。

関連するQ&A

専門家に質問してみよう