代码之家  ›  专栏  ›  技术社区  ›  Vlad Crehul

在C语言中无法将十进制转换为二进制。没有输出[关闭]

  •  -8
  • Vlad Crehul  · 技术社区  · 7 年前

    通常这很容易,但我刚刚开始学习C。我正在使用visual studio 2017社区,现在我似乎无法使用手表。当我运行程序时,它什么也不输出。我做错了什么?

    //20_10_17
    //Crehul Vlad
    //Base conversion: Decimal into Binary
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    void main() {
        int k=0, i, r, nr, c, N[64];
        printf("Decimal Nr: "); scanf("%d", &nr);
        c = nr;
        while (nr % 2 != 0) {
            r = c % 2;
            c = c / 2;
            N[k] = r; k++;
        }
        for (i = k; i > 0; i--) {
            printf("%d ", N[i]);
        }
    
    _getch();
    return 0;
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   user2736738    7 年前
    int main()
    {
        int k=0, i, r, nr, c, N[64];
        printf("Decimal Nr: "); scanf("%d", &nr);
        c = nr;
        if(nr==0)
          printf("0");
        else{
        while (nr) {
            r = nr % 2;
            nr = nr / 2;
            N[k] = r; k++;
          }
        }
        // original number in variable c
        for (i = k-1; i >= 0; i--) {
            printf("%d ", N[i]);
        }
        return 0;
    }
    

    试着理解算法的作用。编写终止条件代码时要小心。