标题:递归过程搞不懂,求助。
只看楼主
hebinjie33
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-12-20
结帖率:100%
已结贴  问题点数:20 回复次数:5 
递归过程搞不懂,求助。
#include<stdio.h>
int main()
{
    void convert(int n);
    int number;
    printf("input an integer:");
    scanf("%d",&number);
    printf("output:");
    if(number<0)
    {
        putchar('-');
        number=-number;
    }
    convert(number);
    printf("\n");
    return 0;
}
void convert(int n)
{
    int i;
    if((i=n/10)!=0)
        convert(i);
    putchar(n%10+'0');
    putchar(32);
}
请问:1、在这个 convert 这个递归函数中 具体的递归过程是怎么样的 2、putchar(n%10+'0');n%10是一个字符为什么不加单引号,还有加‘0’有什么作用?
第一次发帖,谢谢。
搜索更多相关主题的帖子: number include convert void 
2013-01-08 17:18
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:0 
1
看看书,上面的注释递归比问人家更加好理解。

2
n % 10 取模, 就是 0 - 9 之间的数字,加上 '0' 就是'0'-'9'的字符

[ 本帖最后由 yuccn 于 2013-1-8 17:25 编辑 ]

我行我乐
我的博客:
http://blog.yuccn. net
2013-01-08 17:23
血雨萧瑟
Rank: 5Rank: 5
来 自:福州大学
等 级:职业侠客
帖 子:155
专家分:320
注 册:2012-11-19
得分:0 
斌杰,是你丫的吗?

新手初学,可以拍砖。
游戏不是猛虎,网络在怎么发展网游都不可能消失只会越来越像一个世界。
2013-01-08 18:13
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
递归并不是自己调用自己,而是相同的代码在每次调用都执行一遍,并且都是独立的,所需的资源除了代码基本都在Stack中

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-01-08 19:07
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
得分:20 
以123为例;
过程如下:
void convert(int 123)
 {
     int i;
     if((12=123/10)!=0)/*if成立,执行*/
        convert(int 12)
 {
     int i;
     if((1=12/10)!=0)/*if成立,执行*/
       convert(int 1)
 {
     int i;
     if((0=n/10)!=0)/*if语句不执行*/
         convert(i);
     putchar(n%10+'0');/*输出0/
     putchar(32);/*输出空格*/

  putchar(n%10+'0');/*输出1*/
     putchar(32);/*输出空格*/
 }
     putchar(%10+'0');/*输出3*/
     putchar(32);/*输出空格*/
 }

[ 本帖最后由 a151141 于 2013-1-8 19:15 编辑 ]
收到的鲜花
  • hebinjie332013-01-10 11:03 送鲜花  1朵   附言:我很赞同

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-01-08 19:12
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
得分:0 
int型的1%10是整形1,+‘0’就是‘1’了

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-01-08 19:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-395758-1-1.html




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

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