既然是void函数,它就不应有returnXXX楼主把问题复杂化了。简化后的程序如下:voidfun(intn,intr){if(n==0)return;elsefun(n/2,r);printf("%d",n%2);}voidmain(){intn,r=2;scanf("%d",&n);fun(n,r);printf("\n");}