当前位置: 代码迷 >> C语言 >> [求助]一个关于scanf和printf的简单问题
  详细解决方案

[求助]一个关于scanf和printf的简单问题

热度:138   发布时间:2005-03-12 21:56:00.0
[求助]一个关于scanf和printf的简单问题
我用scanf输入一个10进制的数,用printf怎么样以2进制的形式输出啊
例如输入16在屏幕上面显示10000
谢谢各位指点拉
急求
搜索更多相关的解决方案: printf  scanf  简单问题  

----------------解决方案--------------------------------------------------------

#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];

clrscr(); scanf("%d",&a); while(a!=0) { a=a/2; m[i]=a%2; i++; } j=i-1; for(i=0;i<=j;i++) { printf("%d",m[i]); } }


----------------解决方案--------------------------------------------------------
以下是引用magic475在2005-3-13 0:25:53的发言:

#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];

clrscr(); scanf("%d",&a); while(a!=0) { a=a/2; //m[i]=a%2; m[i]=a%2; //a=a/2; i++; } j=i-1; for(i=0;i<=j;i++) //for(i=j;i>=0;i++) { printf("%d",m[i]); } }

对以上语句改动一下!


----------------解决方案--------------------------------------------------------
有道理~~~~~~~~~~~~~~


----------------解决方案--------------------------------------------------------

对二楼只要改一个顺序就行了:

#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];

clrscr(); scanf("%d",&a); while(a!=0) { /*a=a/2; m[i]=a%2;*/ m[i]=a%2; //因为先后顺序错了。 a=a/2; i++; } j=i-1; for(i=j;i>=0;i--)//这一句也是顺序的问题 { printf("%d",m[i]); } }

[此贴子已经被作者于2005-3-15 11:12:34编辑过]


----------------解决方案--------------------------------------------------------
我想也许是我 的表达有错把
这样输出的这个数字可以进行运算吗?
----------------解决方案--------------------------------------------------------
这样输出的是一个数组   并不是二进制数   只是输出后看上去是二进制的
----------------解决方案--------------------------------------------------------
  相关解决方案