表題にあります通り、Fortranで全要素が1の2次元配列を出力したいと考えています。以下のようにコードを書いてみたのですがうまく行きません。どこにミスがあるのかわからないので、ご指摘お願いいたします。また、現在は8*8の配列なのですが、整数Nをinputして同じくN*Nの配列を出力するのが目標となっておりますので、その道標もいただけると助かります。
Fortran
1program mat1 2 implicit none 3 integer i,j 4 real(8) a(8,8) 5 do i = 1,8 6 do j = 1,8 7 a(i,j) = 1 8 enddo 9 enddo 10 write(*,*) a(i,j) 11end program mat1
output
16.9526904807491663E-310
outputで出ている結果が何から出てきているのかがそもそもわかりません。
実際にほしい結果
(1,1,1,1,・・・
・・・・・・・
・・・・・・・・・
・・
・
・・1,1,1,1,1)
という感じの全要素が1の8*8行列がほしいです。
追記
以下のようにwrite(,)の部分をループにすると要素はすべて1になりました。しかし、上に書いたような配列の形では出力されず困っています。
Fortran
1program mat1 2 implicit none 3 integer i,j 4 real(8) a(8,8) 5 do i = 1,8 6 do j = 1,8 7 a(i,j) = 1 8 enddo 9 enddo 10 do i = 1,8 11 do j = 1,8 12 write(*,*) a(i,j) 13 enddo 14 enddo 15end program mat1 16
output2
1 1.00000000 2 1.00000000 3 1.00000000 4 1.00000000 5 1.00000000 6 1.00000000 7 1.00000000 8 1.00000000 9 1.00000000 10 1.00000000 11 1.00000000 12 1.00000000 13 1.00000000 14 1.00000000 15 1.00000000 16 1.00000000 17 1.00000000 18 1.00000000 19 1.00000000 20 1.00000000 21 1.00000000 22 1.00000000 23 1.00000000 24 1.00000000 25 1.00000000 26 1.00000000 27 1.00000000 28 1.00000000 29 1.00000000 30 1.00000000 31 1.00000000 32 1.00000000 33 1.00000000 34 1.00000000 35 1.00000000 36 1.00000000 37 1.00000000 38 1.00000000 39 1.00000000 40 1.00000000 41 1.00000000 42 1.00000000 43 1.00000000 44 1.00000000 45 1.00000000 46 1.00000000 47 1.00000000 48 1.00000000 49 1.00000000 50 1.00000000 51 1.00000000 52 1.00000000 53 1.00000000 54 1.00000000 55 1.00000000 56 1.00000000 57 1.00000000 58 1.00000000 59 1.00000000 60 1.00000000 61 1.00000000 62 1.00000000 63 1.00000000 64 1.00000000 65
「うまく行きません」という部分が質問として曖昧です。
どんな結果を期待していたのに、実際に出力された結果はどうなっていて、何が問題だと思うのかを書いてください。
回答2件
あなたの回答
tips
プレビュー