用递归函数将一个整数n转换为字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.用递归函数将一个整数n转换为字符串.

例如:输入438,应输出字符串"438",n的位数不确定,可以是任意位数的整数.//方法一:不使用static型变量

#include

void ltos(long d,char s[],int *i)

{

char t;

if(d<0)d=-d, s[(*i)++]='-'; //若为负则存入负号

t=d%10+'0';

d/=10;

if(d)ltos(d,s,i);

s[(*i)++]=t;

s[(*i)]='\0'; //字符串结束符

}

void main()

{

int i=0;

char str[20];

long int n;

printf("long n=");

scanf("%ld",&n);

ltos(n, str, &i);

printf("string=%s\n",str);

}

//方法二:使用static型变量

#include

#include

void ltos(long d, char s[])

{

char t;

static int i=0;

if(d<0)d=-d, s[i++]='-'; //若为负则存入负号

t=d%10+'0';

d/=10;

if(d)ltos(d, s);

s[i++]=t;

s[i]='\0'; //字符串结束符

}

void main()

{

char str[20];

long int n;

printf("long n=");

scanf("%ld",&n);

ltos(n, str);

printf("string=%s\n", str);

}

//方法三:不使用递归函数

#include

void ltos(long d, char s[])

{

char t;

int i=0, j;

if(d<0)d=-d, s[i++]='-'; //若为负则存入负号do{

s[i++]=d%10+'0';

d/=10;

}while(d);

s[i]=0; //字符串结束符

j=i-1;

for(i=0; i

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

//主函数的写法与方法二完全相同。

相关文档
最新文档