C语言十进制 转二进制结果前面出现一堆不明数字

img

img

img

for(i=100这是错的。输入的整数没有100位二进制长,所以前面的都是垃圾值
修改方法:
一是在函数中转换时,返回实际有效的二进制长度
二是给b[100]赋予一个不为0和1的初始值,比如2,然后在printf时,先检查该数组元素值是否为0或1,或者是不等于2再输出