1 /*描述 2 ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六、十、八进制输出,然而却没有二进制输出,哎,真遗憾! 3 谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?” 4 5 难道你不想帮帮她吗?^_^ 6 7 输入 8 输入有多个数据,数据以EOF结束;每个数据ni(0<=ni<=1000010000)用空格隔开; 9 (温馨提示:EOF即是一个文件的结束标志;while(scanf("%d",&n)!=EOF){}) 10 输出 11 输出有多行,每行对应一个十进制数ni的二进制数; 12 注意:输出的二进制去掉任何一个多余的0; 13 样例输入 14 0 1 2 10 15 样例输出 16 0 17 1 18 10 19 1010*/ 20 #include<stdio.h> 21 int main() 22 { 23 long int n; 24 while(scanf("%ld",&n) != EOF) 25 { 26 int s[31],i,a; 27 if(n == 0) 28 { 29 printf("0 \n"); 30 continue; 31 } 32 for(i = 0;;i++) 33 { 34 s[i] = n%2; 35 n /= 2; 36 if(n == 0) break; 37 } 38 for(a = i;a >= 0;a--) 39 printf("%d",s[a]); 40 printf("\n"); 41 } 42 return 0; 43 }