0
我写了下面的代码递归循环跟踪
#include <stdio.h>
void recurse();
int main()
{
recurse();
return 0;
}
void recurse()
{
static int n=987654321;
if(n==0)
return ;
printf("%d",n%10);
n=n/100;
int a=n;
recurse();
if(a!=0)
printf("%d",a%10);
}
我不理解为什么输出来了135799753? 我认为答案是135799,因为在打印1357之后的第一个9之后,n将变为9,因此n/100将为零,因此递归函数将返回到主体而不打印任何东西。 请纠正我错在哪里。 在此先感谢!
也许使用调试器 –