哎,你为什么不贴出你的程序让大家帮你看看问题呢,你这样提问,别人的程序你测试正确,也不还是不明白自己的程序为什么错误。
我写了下面的程序,确保正常运行,并达到你的要求:
#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);
}
你把a[7]变成a[8],一切就正常了,问题就是数组越界。
#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();
}
已经运行验证过了
慢慢编