题目:编写一个递归函数将一个整数n转换成字符串,例如输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数
思路:
1.整数在C语言中就是以数本身的大小存放,而字符串里面的整数则以ASCII值存放
例如整数0以整数形式存放时,值为0,但是如果是字符,则是48
因此要将数字转换成字符,应该加上48,即0X30;
2.将用于存放字符串的数组定义成全局数组变量,因为每次递归都要用到它
3.将整数的通过对10取余操作,再加上0x30,存放到数组str[0]中,再将整数/10进行递归调用,依次插入到str前面
C代码:
#include<stdio.h>
char str[80]={0}; //定义全局变量str,此时str的数组长度为0
void fun(int n);
void main()
{
int n;
scanf("%d",&n);
fun(n);
printf("%s",str);
}
void fun(int n)
{
int i;
if(n==0) return;
for(i=strlen(str)-1;i>=0;i--)
str[i+1]=str[i];
str[0]=n%10+0x30; //将数字转化成字符串
fun(n/10); //递归调用
}