首页 > 解决方案 > 我的 while 条件有错误,该怎么办?

问题描述

我在这个程序中遇到了很多麻烦 当两个连续数字的除法和 aurea 比率之间的差异小于 10e-6 时,这个斐波那契数列应该停止。不幸的是,程序会自动进入暂停状态,所以我认为在我的 while 条件下发生了一些事情。有什么建议么?

program fibonacci
implicit none
integer::a,b,c,i
real::dif
real,parameter::e=10e-6,aurea=((1+sqrt(5.))/2.)
a=0;
b=1;
i=0;
dif=0;
do while (dif<e)
dif=abs((b/a)-aurea)
if (i==0) then
print*, a
else if (i==1) then
print*,b
else
c=a+b
print*,c
a=b
b=c
end if
end do
pause
end program fibonacci

标签: fortran95

解决方案


推荐阅读