#include<stdio.h>
void printn(int N)
{
if(N)
{
printn(N-1);
printf("%d\n",N);
}
return;
}
int main()
{
int j=0;
scanf("%d",&j);
printn(j);
return 0;
}
输出结果
这里的输出结果和我自己想的恰好相反。所以我对于递归函数的调用过程不是很清楚,还望指点!!!
这个就取决于你的递归函数中,printf的位置哦,在递归之前调用,就能输出10~1,你的代码是在递归之后调用,也就是,走到最深处,才开始打印,自然就是1~10了。你尝试修改一下这个printn如下
void printn(int N)
{
if(N)
{
printf("%d\n",N);
printn(N-1);
}
return;
}
就可以倒序输出了
欢迎点赞和采纳
供参考:
#include<stdio.h>
void printn(int N)
{
if(N) //递归的条件是 N==0
{
printn(N-1); //当N=1时,递归开始返回 进入递归的顺序:10->9->8...->1
printf("%d\n",N);// 当N=1时,才会执行到这句,执行完,函数返回上一层 N=2,以此类推退,层层返回
} //返回顺序:1->2->3......->9->10
return;
}
int main()
{
int j=0;
scanf("%d",&j);
printn(j);
return 0;
}