主题:【求助】一个关于循环的问题,求大侠解答
Nason野猫
[专家分:0] 发布于 2012-05-02 13:55:00
题目如图,小弟知道要用do while循环结构,但是对于如何判断有误空格毫无思路,求大侠们帮助,最好是能发出您编写的代码,谢谢啦~
留一个交流群:170502164
回复列表 (共4个回复)
沙发
fpchi9103 [专家分:260] 发布于 2012-05-02 21:47:00
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
板凳
Nason野猫 [专家分:0] 发布于 2012-05-02 23:21:00
if(a(i:i)/=" ")write(*,"(1a,\)")a(i:i)
这句中意思是不是:如果取得位不为空格,则写出,我想知道write后面的(1a,\)什么意思,不是输出格式一般有a1么,怎么是1a,还有\是什么意思?谢谢了
3 楼
fpchi9103 [专家分:260] 发布于 2012-05-03 09:51:00
rA,r是重复系数,这里可以不写的
\是取消换行,你可以把\去掉试下,就知道了
4 楼
fpchi9103 [专家分:260] 发布于 2012-05-03 13:43:00
还可以这样:
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
我来回复