C语言问题, 将输入的十进制数值转换成8位二进制数值

2024年11月17日 19:19
有4个网友回答
网友(1):

哎,你为什么不贴出你的程序让大家帮你看看问题呢,你这样提问,别人的程序你测试正确,也不还是不明白自己的程序为什么错误。

我写了下面的程序,确保正常运行,并达到你的要求:

#include
int n=0;
f(int x){
n++;
if (x) {
f(x>>1);
printf("%d",x&1);
n++;
}else for (x=n;x<=8;x++) printf("0");
}
main ()
{
int x;
printf("\n");
scanf("%d",&x);
f(x);
}

网友(2):

你把a[7]变成a[8],一切就正常了,问题就是数组越界。

网友(3):

#include
#include

main(void)
{
unsigned char a[9];
unsigned char k;
unsigned char i=0;
scanf("%d",&k);
for(i=0;i<8;i++)
{
a[i]=(k%2)+'0';
k/=2;
}
a[8]='\0';
puts(a);
getch();

}

已经运行验证过了

网友(4):

慢慢编