c语言:将递归的方法将一个正整数逆序输出

2024-12-23 01:08:53
推荐回答(3个)
回答1:

可以参考下面的代码:

#include

#include

void print_order_number(unsigned number)

{

printf("%d",number%10);fflush(NULL);

if ( number >= 10 )

{

print_order_number(number/10);

}

}

int main(int argc, char**argv)

{

if ( argc != 2 )

{

printf("Usage: rev_print \n");

exit(0);

}

unsigned number = atol(argv[1]);

print_order_number(number);

return 0;

}

扩展资料:

printf函数定义

函数声明

int printf(char *format...);

调用格式

printf("<格式化字符串>", <参量表>);

格式化字符串包含三种对象,分别为:

1、字符串常量;

2、格式控制字符串;

3、转义字符。

字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

参考资料来源:百度百科-printf

参考资料来源:百度百科-递归函数

回答2:

  1. 算法:递归函数传入正整数,先输出最末尾数字,再除以10用递归函数继续迭代,直到该正整数为0时终止递归。

  2. 例程:

    #include
    void rev(int n){
       if(n > 0) {            //判断该数是否大于0
           printf("%d", n%10); //输出末位数值
           rev(n/10);        //递归迭代整除10后的剩余值
       }
    }
    int main(){
       rev(1234);        //样例输入1234
       return 0;
    }
    //样例输出 4321

回答3:

#include

void Reverse(unsigned int n)
{
if (n != 0)
{
printf("%u", n % 10);
Reverse(n / 10);
}
}

int main()
{
unsigned int x;
printf("Please input:");
scanf("%u", &x);
Reverse(x);
printf("\n");
return 0;
}