c - 使用参数递归的数字阶乘(如参数列表中的函数调用)

标签 c function recursion ternary-operator

我的问题是关于在 c 中使用三元运算符查找数字的阶乘。我下面的代码建议使用递归,不是在函数定义中,而是在参数列表中。这在 c 中有效吗?

[注意:0 阶乘由一段单独的代码处理]

fact 的函数原型(prototype)是:

int fact(int);

定义是:

int fact(num=(num>1)?num*fact(num-1):1)
{
return num;
}

我的问题是,就像在函数内调用同一函数的不同实例的递归一样,参数是否也适用?

最佳答案

这不是一个有效的语法,编译器会报错,因为你在参数区域中编写代码实现。实现必须在函数签名后面的大括号范围内

有效语法示例:

long factorial(int n);

// some code

long factorial(int n)
{
  if (n == 0)
    return 1;
  else
    return(n * factorial(n-1));
}

引用:http://www.programmingsimplified.com/c-program-find-factorial

关于c - 使用参数递归的数字阶乘(如参数列表中的函数调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823592/

相关文章:

string - 如何从文件名中提取值?

c - 找出递归函数的时间复杂度

python -/usr/bin/ld : cannot find -lpython-dev on Ubuntu. 使用PyObject编译C程序

c - 我怎样才能暂停然后恢复对 `sleep` 的调用

function - lua - 如何创建函数

wpf - 数据绑定(bind)如何避免 WPF 中的递归更新?

bash - Bash在处理[[

c - 从当前线程中找出事件线程的状态。 (稳健互斥体的实现)

c - 使用指针算法迭代,可能的内存泄漏?

javascript - 如何使用 JavaScript 中的任何高阶函数来为以下代码获取所需的输出?