看板 Fortran 關於我們 聯絡資訊
我寫完跑排序由小到大的程式後,可是跑出來的值變成如下,可是我只是跑分數大小而已啊 怎麼會出這些數字啊?不知道有沒有人能幫我解惑!謝謝! 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
charlesdc:沒有細看! 不過建議計數器跟變數要分開使用 還有一開始 07/12 18:10
charlesdc:的A(j)編譯的時候應該是不會過的!! 07/12 18:11
ckshfire:一開始10開完要關掉 再去讀值 不然會讀進不知道什麼東西 07/12 20:11
ckshfire:關掉再開一次 07/12 20:11
Cypresslin:如同樓上說的,你999的那個迴圈已經把檔案讀完了一次 07/12 21:14
Cypresslin:加個rewind(10)就不用close再open了 07/12 21:15