//十进制整数转二进制
int x;
int t;
scanf("%d",&x);
for(t=0;t<=x;t++){
int a,bin[100]={0},i=0;
a=t;
while(a!=0){
bin[i]=a%2;
a/=2;
i++;
}
int j;
for(j=i-1;j>=0;j--){
printf("%d",bin[j]);
if(j==0){
printf("\n");
}
}
}
return 0;
//十进制小数转二进制
double x;
double a;
int i = 0,j = 0;
int bin[100];
scanf("%lf",&x); //这个地方一开始我搞成%f了,怎么都不对哈哈哈
a = x - (int)x; //小数部分
// while(a!=0){
// bin[i] = (int)(2*a);
// a = 2*a-int(2*a);
// i++;
// } 在这个例子中我深切感受到do-while先走一次的必要性了。不然a上来就是0怎么办?
do{
bin[i] = int(2*a);
a = 2*a-int(2*a);
i++;
} while(a!=0);
printf("%d.",(int)x);
for(j=0;j<i;j++){
printf("%d",bin[j]);
}
return 0;在这里插入代码片