7.利用递归,逆序输出一个这个整数

  • Post author:
  • Post category:其他



题目:

设计一个函数,将正整数参数n,由低位到高位倒序输出。


分析思路:

1.倒序输出一个整数,则需要给每一位上数字取下来。就需要定义个数组,存取这些数字。给数组首地址传函数,最后返回

2.因为最后需要输出数组内每一个数字,所以需要用到遍历输出,但需要知道有几位数字,因此需要定义个长度,求出长度。

3.递归思想,现在草稿内写下来逻辑思路,传进去数字.1.取数字2..更新数字3.数组位数更新,然后再重复操作,因此在第三步后,进行递归函数的使用,因为需要反复递归,所以需要一个结束条件,结束条件就是传进的数字,被出完,也就是每一位的数字被取进数组后。最后return 存每一位的数组指针。


代码如下:

#include <stdio.h>
void digui(int n)
{
	printf("%d ",n%10); //先输出,再进入递归,求模时,是输出的个位,例如 482 % 10 = 2;这样递归才算逆序输出。 
	if(n>0)
	digui(n/10);
	printf("%d ",n%10); //这个地方输出,则为正序输出,因为先进入递归,递归到最后一层时n为0,
}						//这时候从最后一层输出,n%10=0。然后它上一层输出,此时n为4,n%10 为4依次类推!  
int main()
{
	int n;
	scanf("%d",&n);
	digui(n);
}



版权声明:本文为m0_59844149原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。