6-5 递归实现顺序输出整数 (15分)

本题要求实现一个函数,对一个整数进行按位顺序输出。

函数接口定义:
void printdigits( int n );

函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。

裁判测试程序样例:
#include

void printdigits( int n );

int main()
{
int n;

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

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:
12345

输出样例:
1
2
3
4
5

void printdigits( int n ){
	if(n<10)
	printf("%d\n",n);
	else{
	printdigits(n/10);
	printf("%d\n",n%10);}
}

ps:第一注:printf("%d\n",n%10)这个语句,会让人误以为程序会率先输出5,但其实程序会先进入printdigits(n/10);
printf("%d\n",n%10)这个语句透露的信息是在迭代走出后,程序必定会将5打印出,而迭代走出后其实已经将1 2 3 4 5 打印出来了
第二注:迭代思路还是类似数列的递推公式,
例如printdigits( int n )=printdigits(n/10)+printf("%d\n",n%10);
按照思路顺序写出即可

你可能感兴趣的:(新人)