C语言 递归函数

用递归法将一个整数n转换成字符串,例如输入483,应该输出字符串“483”。nd位数不确定,可以是任意位数的整数。

//方法一,不需将转换后的字符存储在字符数组中
#include<stdio.h>
void change(int );
int main()
{
int n;
scanf("%d",&n);
change(n);
printf("\n");
return 0;
}
void change(int num)
{
if(num==0)return ;
change(num/10);
printf("%d",num%10);

}

//方法二,先将转换后的字符存储在字符数组中
#include<stdio.h>
#define LEN 100
int m=0;
void change(int ,char *);
int main()
{
int n,i;
char a[LEN];
for(i=0;i<LEN;i++)
a[i]='\0';
scanf("%d",&n);
change(n,a);
printf("%s",a);
printf("\n");
return 0;
}
void change(int num,char *s)
{
if(num==0)return ;
change(num/10,s);
s[m++]=(char)(num%10+'0');
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-11
#include<stdio.h>
int gnn(int e)
{
int j;
int last=1;
for(j=0;j<e;j++)
{
last=10*last;
}
return last;
}
void fun(long int n,int N)
{
int next;
if(N<1)
{
printf("\"");
return;
}

else
{
next=n/gnn(N-1);
printf("%d",next);
fun(n%gnn(N-1),N-1);
}
}
void main()
{
long int n;
printf("请输入所要转换的数字:");
scanf("%d",&n);
int N=1;
long int k=n/10;
for(int i=0;k!=0;i++)
{
k=k/10;
N++;
}
printf("转换后的输出为: ");
printf("\"");
fun(n,N);
printf("\n");
//getch();
}

在VC++6.0上调试可以。
希望是这个。
O(∩_∩)O~
第2个回答  2010-05-11
这个程序我们才做过的哈,就发给你吧
#include<stdio.h>
int t;
void main()
{
int num, p(int num);
scanf ("%d", &num);
t = num;
printf ("=%d\n", p(num));
}
int p(int num)
{
int sum;
extern t;
if (num < 10)
{
sum = num;
printf ("%d+", num);
}
else
{
sum = p(num/10) + num%10;
printf ("%d", num%10);
if (5 != num)
printf ("+");
}
return(sum);
}
试过的,能行哈。希望对你有帮助。当然还有其他的方法,还需自己摸索
第3个回答  2010-05-11
#include "stdio.h"

char s[20]={0};
int i=19;

/*方法一:用全局变量和数组*/
void fun(int n)
{ if(n>0)
{
s[--i]=n%10+'0';
fun(n/10);
}
}
/*方法二,用静态变量和指针形参*/
void fun2(int n,char *str)
{
static int k=0;
if(n>0)
{
fun2(n/10,str);
str[k++]=n%10+'0';
}
}

int main( )
{ char str[20]={0};
/*方法一测试*/
fun(1234567);
/*方法二测试*/
fun2(1234567,str);
printf("%s\n\n",s+i);
printf("%s\n",str);
return 1;
}
超简单的程序,呵呵
第4个回答  2010-05-11
#include <stdio.h>

void shift(int x)
{
if(x/10==0)
{ printf("%2d",x%10);}

else
{
shift(x/10);
printf("%2d",x%10);
}
}

void main()
{
int a;
printf("input a number:");
scanf("%d",&a);

shift(a);

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网