QUOTE:
以下是引用–★–在2006-6-29 5:23:07的发言:
加个'0'(sprintf)或许就100,
在递归里再用sprintf.那这题就是一道垃圾题.
你了解sprintf函数的构造吗?
你知道那样又调用了多少东西....
i don't understand ing....................
日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
#include<stdio.h>
#include<string.h>
void zh(int m,char *ch);
main()
{
int m,i,l;
char ch[6];
scanf("%d",&m);
zh(m,ch);
l=strlen(ch);
for(i=l-1;i>=0;i--)
printf("%c",ch[i]);
printf("\n");
return 0;
}
void zh(int m,char *ch)
{
if(m==0) {
*ch='\0';
return;
}
*ch= m%10+48;
zh(m/10,++ch);
}
想一想,还可以大大的简化
#include<stdio.h>
#include<string.h>
void zh(int m,char *ch);
void put(char*ch);
main()
{
int m;
char ch[6];
scanf("%d",&m);
zh(m,ch);
put(ch);
printf("\n");
}
void zh(int m,char *ch)
{
if(m==0) {
*ch='\0';
return;
}
*ch= m%10+48;
zh(m/10,++ch);
}
void put(char*ch){
if(!(*ch)) return;
put(ch+1);
printf("%c",*ch);
}
不但可以用递归来做,还可以用用递归来输出