C 关于基本对话,我在数组中遇到问题

C 关于基本对话,我在数组中遇到问题,c,C,本程序的目的是进行基本转换。其目的是将基准2转换为基准10。当我执行代码时,程序终止,没有任何错误消息 我的代码怎么了 main() { int binary[25]; int counter_1; int sum=0; int counter_2=0; printf("enter the binary digits:"); for(counter_1=0;binary[counter_1]==

本程序的目的是进行基本转换。其目的是将基准2转换为基准10。当我执行代码时,程序终止,没有任何错误消息

我的代码怎么了

main()    
{         
    int binary[25];    
    int counter_1;    
    int sum=0;    
    int counter_2=0;

    printf("enter the binary digits:");

    for(counter_1=0;binary[counter_1]==0 || binary[counter_1]==1;++counter_1)
    {
        scanf("%d",&binary[counter_1]);
    }
    for( ;counter_1>=0;counter_1--)
    {
        sum=sum+(pow(2,counter_2)*binary[counter_1]);
        counter_2=counter_2+1;
    }
    printf("your binary digits is equivalent to %d in decimal base.",sum);
}

在初始化数组内容之前,您正在访问这些内容。您的程序有未定义的行为

for(counter_1=0;binary[counter_1]==0 || binary[counter_1]==1;++counter_1)
                // ^^^ accessing uninitialized value
要向数组的每个元素读取二进制数(1或0),可以使用:

for(counter_1=0; counter_1 < 25; ++counter_1)
{
   scanf("%d", &binary[counter_1]);
   if ( binary[counter_1] != 0 && binary[counter_1] != 1 )
   {
      break;
   }
}
for(计数器_1=0;计数器_1<25;++计数器_1)
{
scanf(“%d”&二进制[计数器_1]);
if(二进制[计数器1]!=0和二进制[计数器1]!=1)
{
打破
}
}

在初始化数组内容之前,您正在访问这些内容。您的程序有未定义的行为

for(counter_1=0;binary[counter_1]==0 || binary[counter_1]==1;++counter_1)
                // ^^^ accessing uninitialized value
要向数组的每个元素读取二进制数(1或0),可以使用:

for(counter_1=0; counter_1 < 25; ++counter_1)
{
   scanf("%d", &binary[counter_1]);
   if ( binary[counter_1] != 0 && binary[counter_1] != 1 )
   {
      break;
   }
}
for(计数器_1=0;计数器_1<25;++计数器_1)
{
scanf(“%d”&二进制[计数器_1]);
if(二进制[计数器1]!=0和二进制[计数器1]!=1)
{
打破
}
}
更改为
for(counter_1=0;scanf(“%1d”)和binary[counter_1])==1&&(binary[counter_1]==0 | | binary[counter_1]==1);++counter_1);对于(--counter_1;counter_1>=0;counter_1--)
更改为
for(counter_1=0;scanf(“%1d”)和binary[counter_1])==1&&(binary[counter_1]==0 | | binary[counter_1]==1)+counter_1);对于(--counter_1;counter_1>=0;counter_1--)