作者fragmentwing (片翼碎梦)
看板Fortran
标题Re: [心得] 可直接使用的快速排序法
时间Sat Nov 26 18:36:40 2022
自己回自己文好像怪怪的
其实是我後来想了想读取格式的程式码好像不用那麽复杂
只要这样写就同样能够得出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比较保险
然後,好耶,这样本板今年就超过一季一篇文了(误
--
https://i.imgur.com/h4Q0F04.jpg
9月23日 发生大事了
因为就在这天,加藤惠诞生了
https://i.imgur.com/H3RhXfJ.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.189.144 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Fortran/M.1669459004.A.7A5.html
1F:→ blc: 感谢。话说字串输入输出和处理一直是fortran弱项 11/26 20:59
2F:→ fragmentwing: 对啊 学python时会觉得能直接读dataframe是一件很神 11/27 11:45
3F:→ fragmentwing: 奇的事情 11/27 11:45
4F:→ fragmentwing: 在fortran要达到这种指令得下多少功夫啊 11/27 11:45
5F:→ rex0707: 怎麽用四个单独的if 不用else if 11/27 16:47
6F:→ fragmentwing: 在尝试用early return不过真正的early return要全部 11/27 17:40
7F:→ fragmentwing: 都用否定的样子 11/27 17:40
8F:→ blc: early return要'符合条件就离开',这边不太适合 11/29 21:29
9F:→ fragmentwing: 好像是这样 不过单纯把大ifelseif结构拆成数个if不 12/06 15:17
10F:→ fragmentwing: 知道到底是好还坏 会觉得这样好像理解上会比较直接 12/06 15:17
11F:→ fragmentwing: 但是结构真的有比较杂的感觉 12/06 15:18