| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:这个结果怎么出来的?
只看楼主 加入收藏
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
这个结果怎么出来的?
代码如下:

#include<stdio.h>
int main(void)
{
    void t(unsigned int a);
    unsigned int a;
    scanf("%d",&a);
    t(a);
    getch();
    return 0;
}
void t(unsigned int a)
{
    unsigned int b;
    b=a/10;
    if(b!=0)
    {
        t(b);
    }
    putchar(a%10+'0');
}
    在假设输入82的情况下,按我的逻辑 输入82整数,调用函数t,此时函数t的变量a等于82。定义一个变量b后赋值a除以10,b的结果为是8,判断条件成立。然后调用函数t参数为b(也就是8)进入函数,此时a的值为8 在定义一个b赋值a除以10结果为0,判读不成立 执行putchar函数输出(a%10+'0')结果为8 函数结束~~怎么会多出来个2
搜索更多相关主题的帖子: void include return 
2012-01-09 12:48
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
知道了..原来第一次调用函数中反复调用的时候后面的putchar还未执行,等第二次函数调用完了以后在回来调用putchar  
还以为调用第二次的时候后面的putchar语句被省略了...更严重的是我还以为 C和指针上讲的执行步骤是错的....
2012-01-09 12:55
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:20 
多了一个getch(),我的没法运行。还有 putchar(a%10+'0'),加一个‘0’什么意思?
2012-01-09 13:22
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:0 
putchar(a%10+'0')用法初次见,能不能给个解释
2012-01-09 13:25
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 4楼 天天涯涯
C和指针 上的递归那节上面有讲 我也说不明白不过在我看来是白写的 书上这样写我就这样写了...不写结果也是一样的啦
2012-01-09 15:30
快速回复:这个结果怎么出来的?
数据加载中...
 
   



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

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