你好我已经帮你做了这个题目了,两个思路是不一样的,也比较容易看懂
- int getlen(char *s)
- {
- int n;
- for(n=0;*s!='\0';s++)
- n++;
- return n;
- }
- void reverse(char s[])
- {
- int c,i,j;
- for(i=0;j=getlen(s)-1;i<j;j--)
- {
- c=s[i];
- s[i]=s[j];
- s[j]=c;
- }
- }
- void itoa(int n,char[])
- {
- int i,sign;
- if((sign=n)<0)
- n=-n;
- i=0;
- do{//反序以生成数字
- s[i++]=n%10+'0';//get next num
- }while((n/=10)>0);//delete the num
- if(sign<0)
- s[i++]='-';
- s[i]='\0';
- reverse(s);
- }
复制代码
这是方法二,用了c++的cout,换成printf即可啦
- void itochar(int num);
- void itochar(int num)
- {
- int i=0;
- int j;
- char stra[10];
- char strb[10];
- while(num)
- {
- stra[i++]=num%10+48;
- num=num/10;
- }
- stra[i]='\0';
- for(j=0;j<i;j++)
- {
- strb[j]=stra[i-j-1];
- }
- strb[j]='\0';
- cout<<strb<<endl;//换成printf就行了
- }
- int main()
- {
- int num;
- cin>>num;
- itochar(num);
- return 0;
- }
复制代码 |