//以二进制形式打印整数 #include <stdio.h> void to_binary(unsigned long n); void fo_binary(unsigned long n); int main() { unsigned long number; printf("输入整数[q退出]: "); while (scanf_s("%lu", &number) == 1) { printf("递归: 二进制为 "); to_binary(number); putchar('\n'); printf("循环: 二进制为 "); fo_binary(number); putchar('\n'); printf("输入整数[q退出]: "); } printf("完成\n"); system("pause"); return 0; } //用递归打印整数的二进制 void to_binary(unsigned long n) { int r; r = n % 2; if (n >= 2) to_binary(n / 2); putchar(r == 0 ? '0' : '1'); //return; } //用循环打印整数的二进制 void fo_binary(unsigned long n) { int i, j[50],x, z; for (i = 0, z = 0; n >= 2; n /= 2, z++) { i = n % 2; if (i == 0) j[z] = 0; else j[z] = 1; } putchar('1'); for (x = z-1; x >= 0; x--) { printf("%d", j[x]); } putchar('\n'); }