无法在C中将小数转换为二进制文件。无输出

时间:2017-10-20 19:34:39

标签: c base

通常情况下这很简单,但我刚开始学习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 个答案:

答案 0 :(得分:0)

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;
}

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