xiejihong0306 发表于 2022-10-8 11:17:41

递归函数运行,输入数据后,没报错但程序不动

本帖最后由 xiejihong0306 于 2022-10-8 11:36 编辑

彭国论教材EX0829.F90,用递归函数实现阶乘。


可我遇到了下面这个问题,按照粘贴的源代码那样,运行后输入n!,程序没报错,也没输出结果,想了半天实在没看懂哪有问题,


如果可以的话,想请高人解惑,万分感谢
:'(
-----------------------------

补充:不好意思题干描述有点问题,我输入的9 ,没加感叹号:-L

data:image/png;base64,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
! NOTE:P209
!A sample code that reveals the principle of recursive functions and the calculation process
      program ProgramName
      implicit none
      integer ExitKey

      integer(kind=4) :: n
      integer(kind=4), external :: fact
      write(unit=6, fmt="('N = ')")
      read (unit=5, fmt=*) n
      write(unit=6, fmt="(I3,'! = ', I8)") n, fact(n)

! Avoid having the command window exit before the results are output
      write ( *, *) 'Press input any words to exit...'
      read ( *, *) ExitKey
      stop
      end program ProgramName


      recursive integer(kind=4) function fact(n) result(ans)
      implicit none
      integer(kind=4), intent(in) :: n
      integer(kind=4), save :: count = 1
      integer(kind=4) :: localcount, temp
      localcount = count
      count = count + 1
      write(unit=6, fmt="(I2, 'th enter, n = ', I2)") localcount, n
      !The IF-ELSE combination of multiple judgments only executes the first module that matches the condition
      !and then jumps to END IF to leave the statement.
      if ( n < 0 ) then
          ans = -1
          write(unit=6, fmt="(I2, 'th exit, n = ', I2, 'ans = ', I8)") localcount, n, ans
          return
      else if ( n <=1 ) then
          ans = 1
          write(unit=6, fmt="(I2, 'th exit, n = ', I2, 'ans = ', I8)") localcount, n, ans
          return
      end if
      temp = n - 1
      ans = n * fact(temp)
      write(unit=6, fmt="(I2, 'th exit, n = ', I2, 'ans = ', I8)") localcount, n, ans
      return
      end function fact



















Transpose 发表于 2022-10-8 11:17:42

本帖最后由 Transpose 于 2022-10-8 11:28 编辑

gfortran的函数里面写输出会发生混乱,ifort应该没这个问题
      integer(kind=4) :: n
      integer(kind=4), external :: fact
      integer::f
      write(unit=6, fmt="('N = ')")
      read (unit=5, fmt=*) n
      f=fact(n)
      write(unit=6, fmt="(I3,'! = ', I8)") n, f
   不要同时输出即可

布衣龙共 发表于 2022-10-8 11:25:18

本帖最后由 布衣龙共 于 2022-10-8 11:27 编辑

输入 3 就行了。不要输入 3!

此外,可能存在递归IO占用问题,详解:
http://recursiveio.w.fcode.cn/

xiejihong0306 发表于 2022-10-8 11:36:47

布衣龙共 发表于 2022-10-8 11:25
输入 3 就行了。不要输入 3!

此外,可能存在递归IO占用问题,详解:


不好意思我题干描述有点问题,我输入的9 ,没加感叹号:-L

xiejihong0306 发表于 2022-10-8 11:42:10

Transpose 发表于 2022-10-8 11:17
gfortran的函数里面写输出会发生混乱,ifort应该没这个问题
      integer(kind= ...

牛逼,分开写之后完美解决了,原来是gFortran输出混乱的问题,谢谢你!

--------------------------------

N =
5
1th enter, n =5
2th enter, n =4
3th enter, n =3
4th enter, n =2
5th enter, n =1
5th exit, n =1ans =      1
4th exit, n =2ans =      2
3th exit, n =3ans =      6
2th exit, n =4ans =       24
1th exit, n =5ans =      120
5! =      120
Press input any words to exit...


页: [1]
查看完整版本: 递归函数运行,输入数据后,没报错但程序不动