简明扼要的递归函数(将一个整型数转换成字符[串])

题目:用递归法将一个整数n转换成字符串。例如输入整型数483,应输出字符串483(即4、8、3为在个单独的字符,其ASCII值分别为52,58,51),n的位数不确定,可以是任意位数的整数。

#include <stdio.h>
#include <string.h>
main()
{
void convert(int);
int number;
printf("/nInput an integer: ");
scanf("%d",&number);
printf("Output: ");
if(number<0)          /*if语句的作用是将一个负整数转换为正整数*/
{
putchar('-');             /*输出负号,因为下一条语句会把这个负数强制转换为正数后进行运算,convert函数的输出结果是没有符号的,因此,这里必须要输出一个负号(-),以保证打印出正确结果*/
number=-number;       /*把负数转换成正数。如输入-5623,则把-5326转换成-(-5326),即为正5326,这样才便于convert函数的把数字转换成字符,否则convert函数是无法识别这个整数,因为整数只有0~9这10个数字组成,而没正(+)负(-)符号,符号只是一个数的声明部分,无法参加运算*/
}
convert(number);
}

void convert(int n)
{
int i;
static num=0;               /*num用于计算递归次数,定义num为static静态变量是为了使下次递归(重复)执行该语句时其值不会被初始化而是保持前一次运算的结果*/
num++;
/*printf("/nNow: %d, Times: %d/n",n,num);*/
if((i=n/10)!=0) convert(i);
putchar(n%10+'0');

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值