调试有关问题,请大家帮忙看看!

调试问题,请大家帮忙看看!!
//整数转换成二进制;
#include<stdio.h>
main()
{
int x;
printf("Input number: ");
scanf("%d",&x);
printf("number of decimal form: %d.\n",x);
printf(" it is binary form: ");
printb(x,sizeof(int)*8);
putchar('\n');

}
int x,n;
printb(x,n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
printb(x,n-1);
}
}

------解决方案--------------------
C/C++ code
#include<stdio.h>
printb(int x ,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
printb(x,n-1);
}
}
main()
{
int x;
printf("Input number: ");
scanf("%d",&x);
printf("number of decimal form: %d.\n",x);
printf(" it is binary form: ");
printb(x,sizeof(int)*8);
putchar('\n');

}