用递归发将六位整数转化为字符串,怎么转化啊。第---n---行下有错,怎么改

[复制链接]
查看11 | 回复1 | 2010-11-18 18:14:32 | 显示全部楼层 |阅读模式
#include
void itoa(long i,char *s)
{

if(i==0)

return;

/****** 1 ******/

*s = '1'+i%10;

itoa(i/10,s-1);
}
void main()
{

long n;

char str[7]="";

scanf("%ld",&n);

/****** 2 ******/

itoa(n,str);

printf("%s",str);
}

回复

使用道具 举报

千问 | 2010-11-18 18:14:32 | 显示全部楼层
#includevoid itoa(long i,char *s){
if(i==0)
return;
/****** 1 ******/
*s = '0'+i%10; /* 按照我对题目的理解,这里应该用'0' */
itoa(i/10,s+1); //这里错了,应该是加1的}void main(){
long n;
char str[7]="";
scanf("%ld",&n);
/****** 2 ******/
itoa(n,str);
printf("%s",str);}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行