十进制到二进制转换器,控制台没有响应

Lou*_*ise 0 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;

}
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误消息,我被提示输入一个十进制数字,但之后它没有响应.

Gau*_*gal 6

你有一个错字导致无限循环.while结尾处的分号创建一个没有body的while循环.

while (n!=0);
    {
Run Code Online (Sandbox Code Playgroud)

应该

while (n!=0)
    {
Run Code Online (Sandbox Code Playgroud)