题目:
设计一个函数,将正整数参数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 版权协议,转载请附上原文出处链接和本声明。