0
点赞
收藏
分享

微信扫一扫

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

山竹山竹px 2022-04-13 阅读 98

题目:设计一个函数,将正整数参数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;
}
举报

相关推荐

0 条评论