一个函数的调用问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 16:33:54
fun(int j)
{
for(......)
if(j)
fun(--j);
}
这个算法理论上是正确的。。但运行的结果却是错的。。。比如这样;
如果j=4,x=0
fun(int j)
{
for(int i=0;i<2;i++)
if(j>1)
fun(--j);
x++;
}
这个的运行结果是x=14 而不是理论的16。。。
这个是为什么??

重复提问是会被删除的!

这个递归函数的分析过程较长,在这里写出来太费时,建议用调试模式运行,单步跟踪程序的执行与变量的变化。

C语言程序类型问题,不同的版本在有些算法上有小的差异,特别是++ --要知道你用的编译程序的算法