gpt4 book ai didi

c++ - C++ 程序输出中的次要序列错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:33 24 4
gpt4 key购买 nike

我正在尝试为插入的任何二进制数输出“状态”(对于每个 0,它输出 1 和最大值之间的随机数),例如 10100 应该输出 2,1 和 2 之间的随机数,3,随机1 和 3 之间的数字,1 和 3 之间的随机数。因此看起来像 21323 或 223212 或 21313 等。但我的程序给我的输出是 23456 - 为什么?

int main()
{
char binaryArray [0];
int c1=1;
int c0=0;
int i=0;
int n;

cout << "Enter length of binary: "; //Length = total number of 1s & 0s
cin >> n;

cout << "Enter binary number: ";
cin >> binaryArray;

cout << "States: ";

for(i; i<n; i++)
{
if(binaryArray[i]=1)
{
c1++;
cout << c1;
}
else if(binaryArray[i]=0)
{
c0++;
cout << rand()%c1+1;
}
/* if(c0 > c1)
{
cout << "Invalid Binary Representation.\n" << endl;
exit(0);
} */
}

system("PAUSE");
return 0;
}

最佳答案

当你有一个包含 0(即:零)个字符的数组时,你不能在其中保存任何,甚至不能保存一个位。使该数组“足够大”(无论这对您意味着什么)或更好地使用 std::string

哦,在启用所有编译器警告的情况下编译您的代码。当您理解并正确修复所有这些警告后,您的程序应该会运行得更好。 (提示:条件内赋值)

关于c++ - C++ 程序输出中的次要序列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com