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