标题:有大佬解释一下这个函数自己调用自己的过程以及putchar为什么输出的是最高位 ...
只看楼主
新手714
Rank: 1
等 级:新手上路
帖 子:50
专家分:3
注 册:2020-4-25
结帖率:88.89%
已结贴  问题点数:20 回复次数:6 
有大佬解释一下这个函数自己调用自己的过程以及putchar为什么输出的是最高位
#include<stdio.h>
void convert(int n)
{
    int i,j;
    if ((i = n / 10)!= 0)
        convert(i);//就是这个递归的//
    putchar(n%10+'0');
}
int main()
{
    int number;
    printf("\nInput an integer:");
    scanf("%d", &number);
    printf("Output:");
    if (number < 0)
    {
        putchar('-');
        number = -number;
    }
    convert(number);
}
搜索更多相关主题的帖子: convert putchar int 函数 number 
2020-04-27 19:48
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
你准备交卷
  你发现还有道题还没答
    你发现笔没水儿了
    你换笔或者灌水儿
  你答那道题
你交卷

你先调用了交卷函数,可是最后才交卷。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-04-27 22:42
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
你换笔那里就是在输出最高位嘛

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-04-27 22:43
新手714
Rank: 1
等 级:新手上路
帖 子:50
专家分:3
注 册:2020-4-25
得分:0 
回复 2楼 forever74
为什么输出最高位以后还能输出上一位一直到个位
2020-04-27 23:22
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:10 
回复 4楼 新手714
不管是不是递归,if后面的代码都得执行不是
2020-04-28 02:04
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
你没考试经验啊?
换完笔不得回来答题啊?
答完题不得回来交卷啊?

这和输出最高位后
回来输出次高位
回来输出三高
回来输出四高

有啥区别?
你看到一个递归函数,就得在脑子里像上面一样,把它想象成多个函数,一个调用另一个,另一个调用另另一个,调用完回来接着走。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-04-28 12:22
新手714
Rank: 1
等 级:新手上路
帖 子:50
专家分:3
注 册:2020-4-25
得分:0 
回复 6楼 forever74
别整这些花里胡哨的,俺不懂,难道是putchar函数还能发现之前条件句计算的值它还没计算,然后把它还没计算的抓过来计算输出?
2020-04-29 09:56



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




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

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