| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:找个错误
只看楼主 加入收藏
ahyshong
Rank: 2
等 级:论坛游民
帖 子:28
专家分:86
注 册:2009-2-14
结帖率:100%
收藏
 问题点数:0 回复次数:3 
找个错误
#include<stdio.h>
将10进制数转变成2进制数

int main()
{
    int printb(int x,int n);
    int x;
    printf("input the D number:");
    scanf("%d",&x);
    printb(x,sizeof(int)*8);            
        putchar('\n');
}
int printb(int x,int n)           /*输入整数x的二进制数的后n位*/
{  
    if(n>0){
        putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
        printb(x,n-1);         /*递归调用,输出后n-1位*/
    }
}
程序调试有错误,我不知道怎么改了……
谢谢各位解惑。
2010-04-12 23:22
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
收藏
得分:0 
#include <stdio.h>

int main (int argc, char *argv[])
{
    int a=15, n =32;
    printb (a, n);
    return 0;
}
int printb(int x,int n)           /*输入整数x的二进制数的后n位*/
{
    if(n>0){
        putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
        printb(x,n-1);         /*递归调用,输出后n-1位*/
    }

    return 0;
}


没发现错误!!
2010-04-12 23:40
freegod
Rank: 2
等 级:论坛游民
帖 子:33
专家分:73
注 册:2010-4-12
收藏
得分:0 
回复 楼主 ahyshong
#include<stdio.h>
int main()
{
    void printb(int x,int n);
    int x;
    printf("input the D number:");
    scanf("%d",&x);
    printb(x,sizeof(int)*8);            
    putchar('\n');
    return 0;

}
void printb(int x,int n)           /*输入整数x的二进制数的后n位*/
{  
    if(n>0){
        putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
        printb(x,n-1);         /*递归调用,输出后n-1位*/
    }
}
错误:1、主函数声明为int型,那么你要有返回值,如return 0;
      2、调用的printb函数,你也把它声明为int型,你又没有返回值,所以把它改成void型即可
2010-04-13 08:59
ahyshong
Rank: 2
等 级:论坛游民
帖 子:28
专家分:86
注 册:2009-2-14
收藏
得分:0 
以下是引用freegod在2010-4-13 08:59:14的发言:

错误:1、主函数声明为int型,那么你要有返回值,如return 0;
      2、调用的printb函数,你也把它声明为int型,你又没有返回值,所以把它改成void型即可
受到信息。非常感谢!!!
2010-04-13 09:09
快速回复:找个错误
数据加载中...
 
   



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

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