[問題] 簡單的排序問題(內有程式)麻煩指教

看板Fortran作者 (嚕咪)時間14年前 (2010/07/12 15:01), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
我寫完跑排序由小到大的程式後,可是跑出來的值變成如下,可是我只是跑分數大小而已啊 怎麼會出這些數字啊?不知道有沒有人能幫我解惑!謝謝! 157076596 157076520 134603550 134603542 134603535 16777216 16777216 7521472 7521312 7521312 2752534 2686998 2686998 2031707 2031707 2031707 720897 720897 720897 7609 92 92 63 5 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5 -6 程式如下展示!我覺得是我的程式一定哪裡有錯誤!可是我卻無法理解!麻煩高手告訴我一下! program test implicit none integer A(j),c,d,b,i,j open(10,file='student.dat') i=0 do read(10,*,end=999)c i=i+1 enddo 999 continue do j=1,i read(10,*,end=998)A(j) enddo 998 continue j=1 do while(j.lt.i) if(A(j).lt.A(j+1))then d=A(j) b=A(j+1) A(j)=b A(j+1)=d j=0 endif j=j+1 enddo do j=1,i write(*,*)A(j) enddo stop end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.111.173

07/12 18:10, , 1F
沒有細看! 不過建議計數器跟變數要分開使用 還有一開始
07/12 18:10, 1F

07/12 18:11, , 2F
的A(j)編譯的時候應該是不會過的!!
07/12 18:11, 2F

07/12 20:11, , 3F
一開始10開完要關掉 再去讀值 不然會讀進不知道什麼東西
07/12 20:11, 3F

07/12 20:11, , 4F
關掉再開一次
07/12 20:11, 4F

07/12 21:14, , 5F
如同樓上說的,你999的那個迴圈已經把檔案讀完了一次
07/12 21:14, 5F

07/12 21:15, , 6F
加個rewind(10)就不用close再open了
07/12 21:15, 6F
文章代碼(AID): #1CEhtGI1 (Fortran)
文章代碼(AID): #1CEhtGI1 (Fortran)