2个回答
展开全部
这个题目是用循环好做,用递归还有点烦,还好做出来了:
#include "stdio.h"
int itoc(int num, char *buffer)
{
int i=0;
if(num<0)
{
*buffer='-';
num=0-num;
itoc(num,buffer+1);
}
else if(num>=10)
{
i=itoc(num/10,buffer);
*(buffer+i)=(num%10)+'0';
*(buffer+i+1)=0;
}
else
{
*buffer=num+'0';
*(buffer+1)=0;
}
return i+1;
}
void main()
{
char str[20];
itoc(0,str);
printf("%s\n",str);
itoc(17858,str);
printf("%s\n",str);
itoc(-12345,str);
printf("%s\n",str);
}
#include "stdio.h"
int itoc(int num, char *buffer)
{
int i=0;
if(num<0)
{
*buffer='-';
num=0-num;
itoc(num,buffer+1);
}
else if(num>=10)
{
i=itoc(num/10,buffer);
*(buffer+i)=(num%10)+'0';
*(buffer+i+1)=0;
}
else
{
*buffer=num+'0';
*(buffer+1)=0;
}
return i+1;
}
void main()
{
char str[20];
itoc(0,str);
printf("%s\n",str);
itoc(17858,str);
printf("%s\n",str);
itoc(-12345,str);
printf("%s\n",str);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询