递归条件中printf("%d\n", n%10);的作用是什么?它在那条语句后执行?

img

img


#include <stdio.h>

void printdigits( int n );

int main()
{
int n;

scanf("%d", &n);
printdigits(n);

return 0;

}

/* 你的代码将被嵌在这里 */
void printdigits( int n ){
if(n<10){ //基线条件
printf("%d\n", n);
}else{ //递归条件
printdigits(n/10);
printf("%d\n", n%10);
}
}

在个位数之前都是先进入递归,也就是调用函数自身之后再输出,对10取余的意思是输出当前的最低位