大家帮我看看,我这个fortran程序错哪儿了?

我是一名fortran语言初学者,目前跟着书本在学习。有一道例题 求1!+2!+......+N!。我编写的程序如下:

img

这个程序编译,链接都没问题。算N=1和N=2都没问题,但是算大于等于3的数字就不行了,咋回事儿呢?

B=1应该挪到DO 20循环前面

1、你的书太老了,不是fortran 90的写法;https://www.bilibili.com/video/BV1XD4y1S7jz?p=1
2、你的编译器软件太老了,不适用于win7以上系统,建议用最新的: https://www.bilibili.com/video/BV1oh411o7AT?p=2
3、代码可以优化如下

program exam
implicit none
integer n, s
read(*,*) n
s = n
do while(n>1)
  n = n - 1
  s = s*n + n
end do
write(*,*) s
end program

忘了告诉大家,我用的是fortran 90