首页 > 解决方案 > 在 C 中接收函数调用

问题描述

为什么这个递归函数陷入无限循环?它显示 Val 的值没有减少。背后的逻辑是什么。

int Bar(int Val) // value passed is 3
{
    int x=0;
    while (Val>0)
    {
        x=x+Bar(val-1);
    }
    return Val
}

标签: crecursionfunction-call

解决方案


不是递归,而是永远不会结束的while循环。

while (val>0) {  
  x=x+bar(val-1);
}

在这个循环中,你永远不会改变val. 所以循环永远不会终止。


推荐阅读