c语言 递归法将一个整数n转换成字符串,用递归法将一个整数n转换成字符串.例如,输入483,应输出字符串"483".n的位数不确定,可以是任...

#include

void main()

{

void c(long int m);

long int n;

printf("请输入一个任意整数\n");

scanf("%ld",&n);

printf("用递归法将其转换成字符串是:\n");

if(n<0) //考虑到输入可能为负数//

{putchar('-');

n*=-1; //先将负数转换成整数,以免在自定义的函数内再讨论//

}

c(n);

printf("\n");

}

void c(long int m)

{

long int x;

x=m/10;

if(x!=0) //递归的结束条件//

c(x);

putchar(m+'0'); // 字符0的ASCLL码是48,任意一个一位数加上48生成的//

} //ASCLL码对应的字符就是这个任意一位数本身了//

执行程序结果

a4c26d1e5885305701be709a3d33442f.png

切记:

不要将void c(long int m)函数定义成以下形式

void c(long int m)

{

long int x;

x=m/10;

putchar(m+'0'); //位置稍有改变//

if(x!=0)

c(x);

}

执行程序结果

a4c26d1e5885305701be709a3d33442f.png

解释说明:

由于putchar函数移到了递归判断条件的前面,所以每次调用c函数时,

就会先把参数的末位也就是个位数字先以字符的形式输出了,

当递归调用结束后,也就成了将原来的整数以字符串的形式逆序输出了.

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值