C 关于基本对话,我在数组中遇到问题
本程序的目的是进行基本转换。其目的是将基准2转换为基准10。当我执行代码时,程序终止,没有任何错误消息 我的代码怎么了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]==
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--)