c - 十进制到二进制转换器,控制台无响应

标签 c

我在 C 上尝试一个简单的十进制到二进制转换器,但控制台在输入十进制数后没有响应。这是我的代码。

int convertDecimalToBinary(int n);


int main()
{
    int n;
    printf("Enter a decimal number: ");
    scanf("%d", &n);
    convertDecimalToBinary(n);
    printf("%d in decimal = %d in binary", n, convertDecimalToBinary(n));
    return 0;
}

int convertDecimalToBinary(int n)
{
    int binaryNumber = 0;
    int remainder, i = 1;

    while (n!=0);
    {
        remainder = n%2;
        n /= 2;
        binaryNumber += remainder*i;
        i *= 10;
    }
    printf("%d\n",binaryNumber);
    return binaryNumber;

}

我没有收到任何错误消息,系统提示我输入一个十进制数,但之后它就没有响应了。

最佳答案

您的错字导致无限循环。 while 末尾的分号创建一个没有主体的 while 循环。

while (n!=0);
    {

应该是

while (n!=0)
    {

关于c - 十进制到二进制转换器,控制台无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798133/

相关文章:

android - Android 上的 TCP FAST OPEN

c - 在这种情况下,什么是有效的,将指针的地址分配给指针或使用 strcpy?

c - 通过删除 printf 语句得到不同的答案

c - 什么是正确的数据类型?

C代表困惑?声明顺序导致段错误

c - 在没有变量的情况下访问返回 union 的字段是否合法?

c - 中间舍入

c - 排序后小数点后的数字没有了

c - 动态数组分配,按值传递,超出范围

c - 返回最大整数但获得控制权可能会到达非空函数错误的末尾