#include <stdio.h> //递归方法 void int_binary(unsigned int integer) { int i = 0,j; int b[32]; if(integer == 0) return; if(integer > 0) //终止条件 { b[i++] = integer % 2; integer /= 2; int_binary(integer); } b[i] = '/n'; for(j=i-1;j>=0;j--) //逆序输入余数序列 { printf("%d",b[j]); } } //非递归 void itob(unsigned int n) { int i = 0,j; int b[32]; if(n == 0) return; while(n > 0) { b[i++] = n % 2; n /= 2; } for(j=i-1;j>=0;j--) { printf("%d",b[j]); } } void main() { int integer; scanf("%d",&integer); int_binary(integer); printf("/n"); itob(integer); printf("/n"); } 记得把余数序列逆序输出。