gpt4 book ai didi

c - 我的数组 printf 循环在末尾缺少一位数字

转载 作者:太空狗 更新时间:2023-10-29 15:31:19 25 4
gpt4 key购买 nike

我试图通过这个程序将十进制转换为二进制,但输出总是缺少最后一位数字。

例如,我将输入“123”作为quotient,结果将是“111101”而不是“1111011”。我测试的每个输入都会发生这种情况。每个数字都在正确的位置,除了最后一个数字丢失了。

如有任何帮助,我们将不胜感激。

#include <stdio.h>
int main ()
{
int quotient = 123;
int i = 0;
int d1 = quotient % 2;
quotient = quotient / 2;
int c = 0;
int a = 0;
int number[32] = {};

while (quotient != 0)
{
i = i+1;
d1 = quotient % 2;
quotient = quotient / 2;
c++;
number[c]=d1;
}

for(a = 0; a < c; a = a + 1 )
{
printf("%d", number[c-a]);
}
return 0;
}

最佳答案

问题是您在 while 循环之前进行了一次除法:

int d1 = quotient % 2;
quotient = quotient / 2;

将其替换为:

int d1 = 0;

事情应该会更好。

关于c - 我的数组 printf 循环在末尾缺少一位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52198150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com