| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1953 人关注过本帖
标题:C++初级编程的问题(一道难题)
取消只看楼主 加入收藏
a6162058
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-8
收藏
 问题点数:0 回复次数:1 
C++初级编程的问题(一道难题)

大题:用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定。

书上的答案是这样的:

#include<iostream>
using namespace std;
int main()
{
void convert(int n);
int number;
cout<<"input an integer:";
cin>>number;
cout<<"output:"<<endl;
if(number<0)
{
cout<<"-";
number=-number;
}
convert(number);
cout<<endl;
return 0;
}

void convert(int n)
{
int i;
char c;
if((i=n/10)!=0)
convert(i);
c=n%10+'0';
cout<<" "<<c;
}


问题:(1) c=n%10+'0'; 该句如何理解? +'0' 是什么意思?
(2)假如number=345,执行步骤就是
n=345 i=34
n=34 i=3
n=3 i=0
则n=34 c=…… 然后输出c
但是convert函数是如何实现“流程返回上一次函数调用处的”?返回到n=345??


[此贴子已经被作者于2006-5-8 22:10:08编辑过]

搜索更多相关主题的帖子: number 难题 int convert 
2006-05-08 22:09
a6162058
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-8
收藏
得分:0 

第一个问题我理解了,可第2个呢?
但是convert函数是如何实现“流程返回上一次函数调用处的”?返回到n=345??

2006-05-09 21:35
快速回复:C++初级编程的问题(一道难题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051878 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved