program ln
implicit none
real::x,term,sum=0
integer::n
do
print*,'please input x and n'
read*,x,n
if(x>1.or.x<0.000001) cycle
end do
do
term=(x**n)/n
sum=sum+term
n=n-1
if(n==0) exit
end do
print*,sum
end program ln
百事可乐 发表于 2014-10-17 09:40
if(x>1.or.x
Shiev 发表于 2014-10-17 14:48
没法用cycle实现吗?
hanshikai 发表于 2014-10-17 08:03
第一个循环没有退出条件,所以会一直循环下去,也就是不停地要求输入x,n
楚香饭 发表于 2014-10-17 16:00
你没有写 else exit
if 的意思是,如果。而不是:只有
program ln
implicit none
real::x,term,sum=0
integer::n
do
print*,'please input x and n'
read*,x,n
if(x>1.or.x<0.000001) then
cycle
else
exit
end if
end do
do
term=(x**n)/n
sum=sum+term
n=n-1
if(n==0) exit
end do
print*,sum
end program ln
楚香饭 发表于 2014-10-17 16:00
你没有写 else exit
if 的意思是,如果。而不是:只有
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |