顺输出二进制数

来源:百度知道 编辑:UC知道 时间:2024/05/30 15:08:34
#include<stdio.h>
void main()
{int s,b,c,y;
scanf("%d",&b);
do
{s=b/2;y=b%2;
b=s;
printf("%d",y);
}
while(b!=0);

}
如何改写啊,请朋友们帮帮忙.

请问这个是个改错题 还是你自己编的?
可以这样编写
#include<stdio.h>
void main()
{static int s,b,c,a[100],i;
scanf("%d",&b);
do
{s=b/2;a[i]=b%2;
b=s;
i++;}
while(b!=0);
for(i-=1;i>=0;i--)
printf("%d",a[i]);
}

main(int x,char*_[]) {
if (_!=0) {scanf("%d",&x); main(x,0);return;}
if(x!=0)main(x/2,0);
printf("%d",x%2);
}

没有任何错
高位在右边,左边是最低位

#include<stdio.h>
void main()
{int s,b,c,y,i=0,j=0,a[100];
scanf("%d",&b);
do
{s=b/2;y=b%2;
b=s;
//printf("%d",y);
a[i++]= y;
}
while(b!=0);
while(j<i)
printf("%d",a[--i]);

}
这样行不?