fortran编写一个函数子程序 IFAC 用来求n!,要求所得函数值为实型。函数必须对自变量进行检查,对不合理的自变量给出出错信息,然后返回。调用此函数求 R! /(R-K)!K! R和K的值由终端输入
时间: 2024-03-22 09:39:13 浏览: 80
以下是 Fortran 代码实现:
```
function IFAC(n)
integer n
real IFAC, factorial
if (n < 0) then
write(*,*) 'Error: n must be a non-negative integer.'
return
endif
factorial = 1.0
do i = 1, n
factorial = factorial * i
enddo
IFAC = factorial
end
program main
integer R, K
real result
write(*,*) 'Enter the value of R:'
read(*,*) R
write(*,*) 'Enter the value of K:'
read(*,*) K
if (R < K) then
write(*,*) 'Error: R must be greater than or equal to K.'
stop
endif
result = IFAC(R) / (IFAC(R-K) * IFAC(K))
write(*,*) 'Result:', result
end
```
首先,我们定义了一个名为 `IFAC` 的函数子程序,它的输入参数为整数 `n`,输出结果为实数类型的阶乘值。在函数内部,我们对输入参数进行了检查,如果输入的 `n` 是负数,就会输出错误信息并返回。否则,我们使用一个循环来计算 `n!` 的值,并将其返回。
然后,我们在主程序中读取用户输入的 `R` 和 `K` 的值,并进行了错误检查,如果 `R` 小于 `K`,就会输出错误信息并终止程序。否则,我们调用 `IFAC` 函数来计算 `R!/(R-K)!K!` 的值,并将其输出。
注意,在 Fortran 中,函数子程序的输出结果需要通过函数名来返回。因此,在 `IFAC` 函数中,我们使用 `IFAC` 作为函数的返回值。在主程序中,我们将 `IFAC` 函数的输出结果赋值给 `result` 变量,并将其输出。
阅读全文