| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖, 1 人收藏
标题:递归的问题,请教,多谢
取消只看楼主 加入收藏
black_billow08
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-27
收藏(1)
 问题点数:0 回复次数:2 
递归的问题,请教,多谢
这是一个十进制数到二进制数转化的小程序:
#include <stdio.h>
void to_binary(unsigned long n);

int main(void)
{
    unsigned long number;
    printf("enter an integer(q to quit): \n");
    while(scanf("%ul",&number) == 1)
    {
        printf("binary equivalent: ");
        to_binary(number);
        putchar('\n');
        printf("enter an integer(q to quit): \n");
    }
    printf("done.\n");
    
    return 0;
}
void to_binary(unsigned long n)
{
    int r;
    r=n%2;
    if(n>=2)
        to_binary(n/2);
    putchar('0'+r);    //问题:这里为什么不能直接putchar(r);
//    putchar(r ? '1':'0');

    return;
}
请教的问题在注释里,多谢
搜索更多相关主题的帖子: 递归 
2008-09-27 16:59
black_billow08
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-27
收藏
得分:0 
[bo][un]ml232528[/un] 在 2008-9-27 17:08 的发言:[/bo]



字符'0'的值为48, '1'的值为49, 而r的值为1或0,putchar()输出字符,所以要加上'0'或48;
如果用printf("%d",r)就不用加'0'了


你这样printf输出的是十进制数啊?
我再思考一下,多谢你的帮助啊!
2008-09-27 17:32
black_billow08
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-9-27
收藏
得分:0 
明白,谢谢各位!
2008-09-28 08:23
快速回复:递归的问题,请教,多谢
数据加载中...
 
   



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

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