C语言的十进制转换位二进制哪里出问题了


#include<stdio.h>
int main()
{
    int t;
    printf("enter a number\n");
    scanf_s("%d", &t);
    while (t != 1)
    {
        if (t % 2 == 1)
        {
            t =t - 1;
            t /= 2;
            printf("1");
        }
        else
            t = t / 2;
            printf("0");
    };
    printf("1");
    return 0;
}

1、scanf("%d", &t);
2、else那里两个语句要花括号
3、程序结果是反序输出了,你可以用一个数组,把每次结果存入,最后从数组最后一个输出


#include<stdio.h>
int main()
{
    int t,a[16],i=0;
    printf("enter a number\n");
    scanf("%d", &t);
    while (t != 1)
    {
        if (t % 2 == 1)
        {
            t =t - 1;
            t /= 2;
            a[i++]=1;
        }
        else
        {
            t = t / 2;
            a[i++]=0;
        }
    };
    a[i]=1;
    while(i>=0)
        printf("%d",a[i--]);
    return 0;
}