题目:设计一个函数,将正整数参数n,由低位到高位倒序输出。
分析思路:
1.倒序输出一个整数,则需要给每一位上数字取下来。就需要定义个数组,存取这些数字。给数组首地址传函数,最后返回
2.因为最后需要输出数组内每一个数字,所以需要用到遍历输出,但需要知道有几位数字,因此需要定义个长度,求出长度。
3.递归思想,现在草稿内写下来逻辑思路,传进去数字.1.取数字2..更新数字3.数组位数更新,然后再重复操作,因此在第三步后,进行递归函数的使用,因为需要反复递归,所以需要一个结束条件,结束条件就是传进的数字,被出完,也就是每一位的数字被取进数组后。最后return 存每一位的数组指针。
代码如下:
#include <stdio.h>
int digui(int n,int i,int a[20])
{
int m=0;//存放每次从数字上取下来的位
a[i] = n % 10;
n = n / 10;
i++;
if (n != 0)
{
a[20]=digui(n,i,a);
// printf("%d", a[i]);
}
return a[20];
}
int main()
{
int n;
printf("输入一个数字\n");
scanf_s("%d",&n);
int a[20]; //存放每次取得的数字
a[20] = digui(n,0,a);
int len = 0;
while(n != 0)
{
len++;
n = n / 10;
}
for (int i = 0; i < len; i++)
{
printf("%d", a[i]);
}
return 0;
}