小白请教,十进制转二进制
这是我的程序#include <stdio.h>
#define N 1000
int main(){
int abc[N];
int a,b,i=0;
scanf("%d",&a);
for(;a>0;)
{
b=a%2;
a=a/2;
abc[N]=b;
i++;
}
for(i=i-1;i>=0;i--)
{
printf("%d",abc[i]);
}
}
输入10,输出来却是这样的,没搞懂为啥

#include <stdio.h> #include <stdlib.h> void change10_2(int n) { if (n == 0) return; else { change10_2(n / 2); printf("%d", n % 2); } } int main() { int n,answer; printf("input:"); scanf("%d",&n); answer=abs(n); change10_2(answer); printf("\n"); return 0; }