|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请各位帮我看看这段把十进制整数转换为二进制的代码哪里有问题,每次运行输入11,12,13都是输出00000001,求救
- #include<stdio.h>
- #include<conio.h>
- int main()
- {
- int n,i,j,d=1;
- printf("input");
- scanf_s("%d",&n);
- for(i=7;i>=1;i--)
- {
- for(j=1;j<=i;j++)
- d=d*2;
- if(n/d==0)
- printf("0");
- else
- {
- printf("1");
- n=n%d;
- }
- }
- if(n==0)
- printf("0");
- else
- printf("1");
- getch();
- return 0;
- }
复制代码
- #include<stdio.h>
- #include<conio.h>
- int main()
- {
- int n, i, j, d = 1;
- printf("input");
- scanf_s("%d", &n);
- for (i = 7; i >= 1; i--)
- {
- for (j = 1; j <= i; j++)
- d = d * 2;
- if (n / d == 0)
- {
- printf("0");
- d = 1;
- }
-
- else
- {
- printf("1");
- n = n%d;
- d = 1;
- }
- }
- if (n == 0)
- printf("0");
- else
- printf("1");
- _getch();
- return 0;
- }
- 你的d=d*2 在一次循环结束后没重置
复制代码
|
|