// 1.奇数的最后一位是1,而偶数的最后一位是0, 如5/2得2,所以下一位是0,若是得出奇数则下一位是1,如果是6的话就是r = 6%2 >0 ,6大于等于2 >6/2 >3 ,>r = 3%2 >1 ,最后一位和所有的都等于n%2 所以用到递归,r就是最后的值等于n%2 ,下一位被除数等于n/2. // 2. 无符号是用 unsiged 表示 ,%lu,程序中用到 unsiged long 无符号长整型,return 0 结束程序 //?? 待解决问题,while (scanf("%lu",&number) == 1) 暂时理解为条件为真 #include <stdio.h> //函数的声明 void to_binary(unsigned long number); int main (void){ printf("Enter an integer(q to quit): "); unsigned long number; while ((scanf("%lu",&number) == 1)) { printf("Binary equivalent: "); to_binary(number); putchar(' '); printf("Enter an integer (q to quit): "); } printf("%lu ",number); printf("input Done. "); return 0; } //函数的实现 void to_binary (unsigned long n){ int r; r = n%2; if (n) { to_binary(n/2); putchar(r?'1':'0'); return; } }