C中的二项式系数递归函数带来了错误的结果,为什么?

时间:2018-04-19 11:43:48

标签: c debugging recursion binomial-coefficients

初学者在这里试图了解bug的来源。

我已经编写了这个递归函数来找到两个数字之间的二项式系数,这在概念上显然是正确的。然而,对于这两个数字,n = 4和k = 2,我应该得到6,而我实际上得到16.任何想法为什么会发生这种情况?

{{1}}

2 个答案:

答案 0 :(得分:5)

这一行看起来不对,因为它将0分配给k

if ((k=0) || (k==n))

你可能意味着:

if ((k==0) || (k==n))

答案 1 :(得分:5)

这一行

 if ((k = 0) || (k == n))

应该是

  if ((k == 0) || (k == n))  
         ^^

你给k分配零。

正如@Michael Walz指出的那样,使用-Wall进行编译以打开所有编译警告是一种很好的做法。