A154383
2021-10-15 15:07
采纳率: 100%
浏览 39

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;
}
  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 小蚂蚁t 2021-10-15 15:20
    已采纳

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

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 小蚂蚁t 2021-10-15 15:32
    
    #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;
    }
    
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题