如何用递归法把一个数字“234”转化为字符串转化为数字“234”输出

C++ 用递归法将一个整数N转换成字符串,_百度知道
C++ 用递归法将一个整数N转换成字符串,
例如输入483,应输出字符串&483&.N的位数不确定,可以是任意位数的整数。请帮我讲解下下面的函数体的作用!!比如我输入483,程序会按照什么顺序一步步执行下去???void convert(int n) {
if ((i=n/10)!=0)
convert(i);
c=n%10+'0';
cout&&& &&&c;
}好的回答可以加分。。谢谢大家了~~~~~~~~!
再问下啊!!这个题目对于实际应用有什么意义???还是仅仅是一道 巩固知识点的 题目??谢谢大家~~~~~~~~~~!!!!
提问者采纳
convert(483){ i=483/10=48 convert(48) {
convert(4)
i=4/10=0 //停止迭代
c=4%10+'0'='4'
cout&&& &&&'4'
c=48%10+'0'='8'
cout&&& &&&'8' }
c=483%10+'0'='3' cout&&& &&&'3'}第三次看这个程序才完全看懂,你这个程序挺好,挺巧妙的,呵呵我也是个初学者,我认为这些最最基本的小程序虽然没有很实际的工程意义,但能够拓展我们的思维,让我们体会c程序的框架应该怎样来构建。虽然将来我们会大量的用到一些现成的库函数,但是如何能用得巧,用最少的代码来达到最大的效果,这种能力就是靠多写这样的小程序来慢慢提高的。
提问者评价
3Q 大家共同进步!!
其他类似问题
字符串的相关知识
其他3条回答
这个在这里也不好讲,最好是借助图形讲,可能容易明白。不好意思,我的表达能力不强。
先执行递归!i=48然后i=4然后i=0执行输出语句n=4,c=4;输出4,退回上一层i=4,n=48,c=8 输出8;然后再返回上一层i=48,n=483,c=3输出3及程序输出结果顺序为: 4 8 3
convert函数的递归调用过程:
当输入483时,将实参483传递给形参n
将483除10(结果为48)赋给i,并执行if语句,调用函数,将此时的i值作为实参传递给形参n(内存中将分配一个区域存储它),然后执行函数
直至if语句不执行,即i=n/10=0时,c='4',并被输出
然后返回上一层调用,这时的i为48,c=‘8’,并被输出
最后返回顶层,c=‘3’,输出
可以看出递归调用的效率很低,但在理论上是一种较常见的方法。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁编写一个递归函数,把一个数字字符串转化为一个整数。函数原型为:void StringToInteger(char *str, int *n_百度知道
编写一个递归函数,把一个数字字符串转化为一个整数。函数原型为:void StringToInteger(char *str, int *n
我有更好的答案
#include &stdio.h&#include &stdlib.h&void StringToInteger(char *str, int *number){
if(*str == '\0')
*number/=10;
*number += *str - '0';
*number *=10;
StringToInteger(str+1,number);}int main(void){
char a[10]={0};
int n = 0;
printf(&请输入一个整数(以字符串储存):&);
scanf(&%s&,a);
StringToInteger(a,&n);
printf(&该整数为:%d\n&,n);
system(&pause&);
return 0;}
其他类似问题
递归函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用递归法把一个正整数N转换成字符串,看看错在哪里?
[问题点数:20分,结帖人cpw]
用递归法把一个正整数N转换成字符串,看看错在哪里?
[问题点数:20分,结帖人cpw]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。用递归法将一个长整型数n逆序转换成字符串。例如,输入483,应输出字符串&384&。n的位数不确定,可以是有效范围内的任意位数。
用递归法将一个长整型数n逆序转换成字符串。例如,输入483,应输出字符串&384&。n的位数不确定,可以是有效范围内的任意位数。
#include &stdio.h&
void fun(long n,char *s)
{
if(n==0)
*s='\0';
else
{
*s=n%10+'0';
fun(n/10,s+1);
}
}
void main()
{
char s[20];
scanf(&%ld&,&n);
fun(n,s);
printf(&%s&,s);
}
其他回答 (1)
#include &stdio.h&
void fun(long a)
{
if(a/10==0)
printf(&%d&,a);
printf(&%d&,a%10);
fun(a/10);
}
}
void main()
{
long xx=0;
scanf(&%ld&,&xx);
printf(&\n&);
}
等待您来回答
编程领域专家用递归法将一个整数n转换成字符串-- 鳄鱼编程社区-- 编程爱好者博客
快捷域名:
用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定
#i nclude&iostream&int main(){&&& void convert(int n);&&&&&& cout&&"input an integer:";&&& cin&&&&& cout&&"output:"&&&&& if(number&0)&&& {&&&&&& cout&&"-";&&&&&& number=-&&& }&&& convert(number);&&& cout&&&&& return 0;}
void convert(int n){&&&&&&&&&&&& if((i=n/10)!=0)&&&&& convert(i);&&&& c=n%10+'0';&&&& cout&&" "&&c;}
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
您需要登录后才能评论,请

我要回帖

更多关于 字符串转化为数字 的文章

 

随机推荐