函数递归问题,为什么printf 放后面会降序输出。

img

img


函数递归问题,输出一到一百之间的数,为什么printf 放后面会降序输出。

printf放到前面先打印n的值再调用递归函数,放到后面先一层层调用递归函数进行递归,直到不满足if条件递归终止,然后从最里面的递归函数开始一层层调用printf函数进行打印。你现在这个代码if语句没有控制递归函数,递归不会终止,会导致栈溢出。应该加上花括号:
if(n < 100)
{
printf("%d\n",n);
f(n+1);
}

放后面 递归是在100结束的 然后开始打印

你代码格式问题,你f函数中的printf应该往前推进4格