我需要使用链接列表和堆栈将十进制更改为二进制,但无论我输入什么,我得到" 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 }
答案 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
的值,以确保它是您的代码可以处理的有效数字。