Re: [心得] 可直接使用的快速排序法

作者: fragmentwing (片翼碎夢)   2022-11-26 18:36:40
自己回自己文好像怪怪的
其實是我後來想了想讀取格式的程式碼好像不用那麼複雜
只要這樣寫就同樣能夠得出space,decimal和digits的參數了
新增一個參數words(int),用來判斷是不是已經沒有在讀空格而是在讀數字了
i = 0
words = 0
space = 0
do while(.true.)
i = i + 1
read(13,'(a1)',advance='no',iostat=stat) digi
if(digi.ne.' ') words = 1
if((digi.eq.' ').and.(words.eq.0)) space = i
if((digi.eq.' ').and.(words.ne.0)) exit
if(digi.eq.'.') decimal = i
end do
digits = i - 1
rewind(13)
想法很簡單,只要開始讀到不是空格,就是進入數字讀取的階段了
而讀到數字後又讀到空格,就是結束階段了
然而一開始有可能直接讀到數字,所以space要先預設為0比較保險
然後,好耶,這樣本板今年就超過一季一篇文了(誤
作者: blc (Anemos)   2022-11-26 20:59:00
感謝。話說字串輸入輸出和處理一直是fortran弱項
作者: fragmentwing (片翼碎夢)   2022-11-27 11:45:00
對啊 學python時會覺得能直接讀dataframe是一件很神奇的事情在fortran要達到這種指令得下多少功夫啊
作者: rex0707 (我就是我)   2022-11-27 16:47:00
怎麼用四個單獨的if 不用else if
作者: fragmentwing (片翼碎夢)   2022-11-27 17:40:00
在嘗試用early return不過真正的early return要全部都用否定的樣子
作者: blc (Anemos)   2022-11-29 21:29:00
early return要'符合條件就離開',這邊不太適合
作者: fragmentwing (片翼碎夢)   2022-12-06 15:17:00
好像是這樣 不過單純把大ifelseif結構拆成數個if不知道到底是好還壞 會覺得這樣好像理解上會比較直接但是結構真的有比較雜的感覺

Links booklink

Contact Us: admin [ a t ] ucptt.com