Fortran 95 Do While循环在错误条件下不退出
这是我的密码:Fortran 95 Do While循环在错误条件下不退出,fortran,while-loop,exit,do-while,fortran95,Fortran,While Loop,Exit,Do While,Fortran95,这是我的密码: program change integer:: amount, remainder, q, d, n, p amount = 47 remainder = amount print*,remainder q = 0 d = 0 n = 0 p = 0 do w
program change
integer:: amount, remainder, q, d, n, p
amount = 47
remainder = amount
print*,remainder
q = 0
d = 0
n = 0
p = 0
do while (remainder >= 25)
remainder = remainder - 25
print*,remainder
q = q + 1
end do
do while (remainder >= 10)
remainder = remainder - 25
print*,remainder
d = d + 1
end do
do while (remainder >= 5)
remainder = remainder - 25
print*,remainder
n = n + 1
end do
do while (remainder >= 1)
remainder = remainder - 25
print*,remainder
p = p + 1
end do
print*, "# Quarters:", q
print*, "# Dimes:", d
print*, "# Nickels:", n
print*, "# Pennies:", p
end program change
输出:
47
22
-3
# Quarters: 1
# Dimes: 1
# Nickels: 0
# Pennies: 0
第一个循环(>=25)应该在余数变为22后退出,但它再次运行并产生一个负数。为什么即使条件为假,也不退出?我使用的是IDEone.com的Fortran“编译器”,看起来像Fortran 95。您的DO循环很好。您只需从每个循环中的
余数
中减去正确的面额即可。例如,将第二个DO循环更改为:
do while (remainder >= 10)
remainder = remainder - 10
print*,remainder
d = d + 1
end do
并以类似的方式改变其余部分