养只鱼 发表于 2019-3-9 11:05:39

C语言将整数输出为二进制形式?

请各位帮我看看这段把十进制整数转换为二进制的代码哪里有问题,每次运行输入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;
}

Mountain_gs 发表于 2019-3-9 14:25:08

#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 在一次循环结束后没重置
页: [1]
查看完整版本: C语言将整数输出为二进制形式?