今回でチュートリアル問題を解いてみよう!が終わりました
全部で五問しかない上に既に三問も解いているので、
昨日一日だけで終わらせようと思えば終わらせられましたね・・・
しかも、今回のは入力の形式が違うだけで実質同じ問題というネ
それでも手こずるという体たらく
じゃーNo.9008からどーぞ
No.9008
9008.f90
integer(8) A
integer(8),allocatable :: x(:)
read(*,*) n
allocate (x(n))
read(*,*) (x(m),m=1,n)
A=0
do m=1,n
A=A+x(m)
end do
write(*,*) A
end
言われた内容も単純、言っていることも単純、なのに手こずりました
というのも、私Fortranで横並び入力ほぼほぼしたことないんですよね・・・
それが仇になって非常に手こずりました
最初、反復で書いてたんですが一行の入力ができなくて(当たり前)、
次に反復やめて"read(,) x(n)"にしてたんですが、このままだとx(n)に数値代入されるので合計値が狂う
結果的に反復形?で何とかごまかしました
あとはIntegerを入れ忘れてチェックに引っかかるといういつものミスくらいでした
この問題を私以外にFortranで解いている人がいたんですが、
私のより全然綺麗で最もっと精進しないとなぁーと思いました、まる
No.9009
9009.f90
integer(8) A
integer(8),allocatable :: x(:)
read(*,*) n
allocate (x(n))
A=0
do i=1,n
read(*,*) x(i)
A = A + x(i)
end do
write(*,*) A
end
こっちはいつもの縦入力で非常にえがった
特にいうことはないです
次回は★1の問題をメインに解いていきまーす
以上!