本文目录一览:
- 1、C语言题目:使用递归法将整数转换成字符串。
- 2、C语言编程:用递归法将一个整数n转换成字符串。
- 3、数字转字符串C语言(必须用递归算法)
- 4、C语言用递归法将一个整数n转换成字符串的程序中 putchar(n%10+'0');有什么作用?
- 5、C语言,请问:递归函数把整数转换成字符串:如123,字符串“123”怎么做?非常急
- 6、用递归将一个整数n转换成一个字符串。如将1234转换为"1234"。
C语言题目:使用递归法将整数转换成字符串。
可以这样用ascii码来转换
ascii码从48~58分别是0,1,2...9
int a=3;
char b;
b=char(a+48);
然后b就是字符'3'了
#includestdio.h
char mychar[100];//定义一个无限大的字符数组来存放所生成的字符 不过最好使用c的动态内存分配
int i=0;
char* function(int a)
{
if (a10) {
mychar[i++]=char(48+a);
return mychar;
}
function(a/10);
mychar[i++]=char(48+a%10);//转化为字符串使用ascii码来转换
return mychar;
}
void main()
{
char*a;
int num=0;
scanf("%d",num);
a=function(num);
printf("转化为字符串后:%s",a);
}
C语言编程:用递归法将一个整数n转换成字符串。
你好!
你不是用递归做的,如果只是简单的输出,可以这样做:
void
tran(int
a)
{
if(a=10)
tran(a/10);
printf("%d",a%10);
}
void
main()
{
tran(12345);
}
希望对你有所帮助,望采纳。
数字转字符串C语言(必须用递归算法)
#include stdio.h
#include math.h
int Digit(int n)
{
int d = 0;
do{
++d;
n /= 10;
}while(n 0 || n 0);
return d;
}
void itoa(int n, char* des)
{
if(n 0)
{
int x = (int)pow(10.0, Digit(n)-1);
*des = n / x + '0';
itoa(n-(n/x)*x, des+1);
}
else{
*des = '\0';
}
}
void itora(int n, char* des)
{
*des++ = n 0 ? itora(n/10, des), n % 10 + '0' : '\0';
}
int main()
{
char b[10], c[10];
itoa(12345, b);
itora(12345, c);
printf("%s %s", b, c);
}
C语言用递归法将一个整数n转换成字符串的程序中 putchar(n%10+'0');有什么作用?
作用就是输出整数n的个位数对应的字符。
n%10对10取余数,得到个位。
个位+ '0'就是得到对应的数字字符比如1 + '0' = '1'
查看下ASCII码表就知道了。
C语言,请问:递归函数把整数转换成字符串:如123,字符串“123”怎么做?非常急
这个题目是用循环好做,用递归还有点烦,还好做出来了:
#include "stdio.h"
int itoc(int num, char *buffer)
{
int i=0;
if(num0)
{
*buffer='-';
num=0-num;
itoc(num,buffer+1);
}
else if(num=10)
{
i=itoc(num/10,buffer);
*(buffer+i)=(num%10)+'0';
*(buffer+i+1)=0;
}
else
{
*buffer=num+'0';
*(buffer+1)=0;
}
return i+1;
}
void main()
{
char str[20];
itoc(0,str);
printf("%s\n",str);
itoc(17858,str);
printf("%s\n",str);
itoc(-12345,str);
printf("%s\n",str);
}
用递归将一个整数n转换成一个字符串。如将1234转换为"1234"。
#include "stdio.h"
main()
{
void convert()
int m;
printf("pinput m=")
scanf("%d",m)
convert(m);
}
void convert(int n)
{
int i;
char c;
if((i=n/10)!=0)/*结束递归调用的条件是i==0*/
convert(i);
c=n%10+'0'
putchar(c);
putchar('\t');
}
1、设m=123,第一次进入convert()方法
if((i=n/10)!=0) //这个时候i =123/10 = 12,因为i!=0,所以进入if
convert(i); 调用convert()
2、第二次进入convert()方法,此时参数带入的是n=12
if((i=n/10)!=0) //这个时候i =12/10 = 1,因为i!=0,所以进入if
convert(i); 调用convert()
3、第三次进入convert()方法,此时参数带入的是n=1
if((i=n/10)!=0) //这个时候i =1/10 = 0,所以不进入if,直接执行下面语句
c=n%10+'0' //c='1',这里的+'0',是为了让数字转换为字符
putchar(c); //输出1
putchar('\t');
因为这个方法体已经执行完毕,所以跳出这个方法,回到第二次的convert()方法。
4、第二次的convert()方法,因为convert(i); 已经执行完,则执行下面那句
c=n%10+'0' //c=12%10+'0'='2' putchar(c); //输出2
putchar('\t');
因为这个方法体已经执行完毕,所以跳出这个方法,回到第一次的convert()方法。
5、第一次的convert()方法,因为convert(i); 已经执行完,则执行下面那句
c=n%10+'0' //c=123%10+'0'='3' putchar(c); //输出3
putchar('\t');