C++ 十进制到二进制转换输出

C++ 十进制到二进制转换输出,c++,c,binary,decimal,C++,C,Binary,Decimal,我的代码有什么问题吗?请大家帮帮我。这是十进制到二进制的转换。根据我的代码,输出将是2对10,3对11,但它的输出总是在最后加上最后一个值,就像3它显示1110,加上以前的输出。我现在该怎么办?帮帮我,好吗 #include<iostream> #include<stdio.h> using namespace std; int main(){ long int decimalNumber,quotient; int binaryNumber[100

我的代码有什么问题吗?请大家帮帮我。这是十进制到二进制的转换。根据我的代码,输出将是2对10,3对11,但它的输出总是在最后加上最后一个值,就像3它显示1110,加上以前的输出。我现在该怎么办?帮帮我,好吗

#include<iostream>
#include<stdio.h>
using namespace std;

int main(){

    long int decimalNumber,quotient;

    int binaryNumber[100],i=0,j;

    printf("Enter any decimal number: ");

    //scanf_s("%ld",&decimalNumber);
    while(scanf_s("%ld",&decimalNumber)==1)
    {

            quotient = decimalNumber;

            while(quotient!=0){
             binaryNumber[i++]= quotient % 2;
             quotient = quotient / 2;
           }

           printf("Equivalent binary value of decimal number %d: ",decimalNumber);

           for(j = i -1 ;j>= 0;j--)
               printf("%d",binaryNumber[j]);
           printf("\n");
           printf("Enter any decimal number: ");
    }
    return 0;
}
#包括
#包括
使用名称空间std;
int main(){
长整数小数,商;
int二进制数[100],i=0,j;
printf(“输入任何十进制数字:”);
//扫描单位(“%ld”和小数);
while(scanf_s(“%ld”,&decimalNumber)==1)
{
商=小数;
while(商!=0){
二进制数[i++]=商%2;
商=商/2;
}
printf(“十进制数%d的等效二进制值:”,十进制数);
对于(j=i-1;j>=0;j--)
printf(“%d”,二进制数[j]);
printf(“\n”);
printf(“输入任何十进制数字:”);
}
返回0;
}

您需要在每个循环开始时初始化
i

while(scanf_s("%ld",&decimalNumber)==1)
{
    i = 0;

如果不这样做,您将把每个新数字追加到最后一个数字的末尾,重复直到您在
binaryNumber
的末尾之外写入。您需要在每个循环的开始处初始化
i

while(scanf_s("%ld",&decimalNumber)==1)
{
    i = 0;

如果不这样做,您将把每个新数字追加到最后一个数字的末尾,重复执行,直到您在
binaryNumber

的末尾之外写入,很高兴这对您有所帮助。如果你的问题现在解决了,请随意回答我的回答:-)很高兴这有帮助。如果您的问题现在已解决,请随意回答我的答案:-)您是否尝试调试它?是否尝试调试它?