自己编一个10进制到2进制代码 有点问题提问
#include<stdio.h>static int sum=0,j=1;
int change(int n)
{int a,d,b[100]={0,1},i;
if(n==1) return(sum+1);
else{for(a=2,i=1;2*a<=n;a=2*a,i++);
for(d=1;d<=i;d++) b[j]=b[j]*10;
sum=sum+b[j];
if(a==n) return(sum);
else{j++;b[j]=1;return(change(n-a));}
}
}
void main()
{printf("输入一个10进制的数字\n");
int n,sum;
scanf("%d",&n);
sum=change(n);
printf("%d",sum);
} 我的思路是 输入10进制的数字先减去一个比他小或者等于的最大2的N次方的数字 然后再递归 请高手帮忙看看 为什么得不出得递归的答案