如何让我的代码正确打印二进制文件?

时间:2015-11-19 23:34:01

标签: c struct linked-list binary stack

我需要使用链接列表和堆栈将十进制更改为二进制,但无论我输入什么,我得到" 1"在我的印刷声明中返回。有人可以帮帮我吗? 我有其他所有功能正确我需要但除了1

我什么也得不到
51 int tobin(int n)
52 {
53     int num;
54     while( n != 0)
55     {
56         if(!isEmpty)
57         {
58             push(n % 2);
59             n = n / 2;
60         }
61         else
62         {
63             num = pop();
64         }
65         printf("%d");
66     }
67     return num;
68 }
69 int main()
70 {
71     int num;
72     int bin;
73
74     printf("Enter an integer: ");
75     scanf("%d", &num);
76
77     tobin(bin);
78     printf("Binary: %d\n");
79
80     return 0;
81 }

1 个答案:

答案 0 :(得分:1)

您需要保存从tobin返回的值,然后将该值传递给printf

int main()
{
    int num;
    int bin;

    printf("Enter an integer: ");
    scanf("%d", &num);

    bin = tobin(num);
    printf("Binary: %d\n", bin);

    return 0;
}

tobin方法无法正确处理转换数字0。在没有看到你的其余代码知道的情况下,我猜想tobin也不会转换负数。您应该检查传递给n的参数tobin的值,以确保它是您的代码可以处理的有效数字。