C语言程序设计,帮忙设计一个程序,很急。

课题:将任一整数转换为二进制形式
功能要求:将任一整数转换为二进制形式并输出。

#include<stdio.h>

void main()
{
    int a,n,m;
    char b[256]={0};
    scanf("%d",&a);
    n=0; m=a; while ( m ) { b[n]=m%2; n++; m/=2; }
    if ( n==0 ) n=1;
    printf("十进制%d转换为二进制为",a);    
    for ( m=0;m<n;m++ ) printf("%d",b[n-m-1]);
    printf("\n");

}

追问

编译成功之后,输入数字,点回车,就是你发的那个图片就消失了?

追答

可以在文件头上加#include
main函数最后加:system("pause");

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-23
#include<stdio.h>
void printb(int,int);
int main()
{
int x;printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d/n",x);
printf(" it's binary form:");
printb(x,sizeof(int)*8); /*x:要转换的整数 sizeof(int):int型在内存中所占的字节数 sizeof(int)*8:int型对应的位数*/
putchar('/n');
return 0;
}

void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*输出第n位*/
printb(x,n-1); /*递归调用,输出x的后n-1位*/
}
}

注意:
1、putchar 只能在屏幕上一次输出1个字符;
2、位操作中注意,左移操作符(<<)从右边开始用0补空位,右移操作符(>>)对于有符号数,从左边插入符号为的拷贝,对于无符号数,则是从左边插入0,所以需要强制类型转换为unsigned。
希望帮到你啊
第2个回答  2014-12-23
#include<stdio.h>
#include<math.h>
void main()
{
    int number=0,i=0,temp=0,length=0;
    char binary[129]={0};
    scanf("%d",&number);
    printf("%d\n",number);
    if(number>0)//判断正负数
binary[0]='+';
    else{
binary[0]='-';
number=abs(number);
    }
    temp=number;
    for(i=1;temp!=0;i++){
        binary[i]=temp%2+'0';
        temp/=2;
    }
    printf("十进制 %d 转换为二进制为",number);
    puts(binary);
    printf("\n");
}

 任意整数,应该包含负数的情况,希望能帮助到你!

相似回答