用递归法编程,C语言编程

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:46:11
用递归法将一个整数n转化成字符串。如,输入整数2008,应输入字符串“2008”。n的位数不确定,可以使任意位数的整数。

#include <stdio.h>
void *fun(int n)
{static int i=0;
char *p;
if(n==0) {while(i--!=0)printf("%c",*(--p));}
else {
*(p)=(n%10)+'0';
i++;
p++;
fun(n=n/10);
}
}
void main()
{ int n;
scanf("%d",&n);
fun(n);
}

#include<stdlib.h>
#include<stdio.h>
int count=1; //保存整数的位数
void fun(char *str,int num) //递归函数
{ int lef=num;
if(count > 0)
{ count--;
lef%=10;
*(str+count) = (num%10)+48; //字符串从后至前进行保存,数字转字符 +48
num/=10;
fun(str,num); //递归调用,直到最后一位
}
}
int main()
{ int num,numtemp;
char *str;
printf("请输入一个整数:");
scanf("%d",&num);
numtemp = num;
while(numtemp/=10) count++;
str = (char *)malloc(count*sizeof(char)+1); //注意+1
*(str+count) = '\0';
fun(str,num);
printf("\nstr:%s