回 帖 发 新 帖 刷新版面

主题:【求助】一个关于循环的问题,求大侠解答

题目如图,小弟知道要用do while循环结构,但是对于如何判断有误空格毫无思路,求大侠们帮助,最好是能发出您编写的代码,谢谢啦~
留一个交流群:170502164

回复列表 (共4个回复)

沙发


program rand
            implicit none
            character(len=20) :: a 
            integer                 :: i
            a = 'happy new year'
            do i = 1, 20
                        if(a(i:i)/=" ")write(*,"(1a,\)")a(i:i)
            enddo
end program rand

板凳


if(a(i:i)/=" ")write(*,"(1a,\)")a(i:i)

这句中意思是不是:如果取得位不为空格,则写出,我想知道write后面的(1a,\)什么意思,不是输出格式一般有a1么,怎么是1a,还有\是什么意思?谢谢了

3 楼


rA,r是重复系数,这里可以不写的
\是取消换行,你可以把\去掉试下,就知道了

4 楼


还可以这样:
program rand
            implicit none
            character(len=20) :: a 
            character(len=20) :: b
            integer                   :: i
            a = 'happy new year'
            b = ' '
            do i = 1, 20
                        if(a(i:i)/=" ") b = trim(b)//a(i:i)                        
            enddo
            write(*,*) trim(b)
end program rand

我来回复

您尚未登录,请登录后再回复。点此登录或注册