C++程序输出中的小序列错误
Minor sequence error in C++ program output
我试图为插入的任何二进制数输出"states"(对于每个0,它输出一个介于1&max之间的随机数(,例如10100应该输出2,介于1&2,3,介于1&3之间的随机数;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
。
哦,在启用所有编译器警告的情况下编译代码。当您正确理解并修复了所有这些警告时,您的程序应该会更好地工作。(提示:条件内赋值(
首先,在if
语句中有赋值。使用==
而不是=
。
其次,如果希望数字以二进制形式输入并存储在char
数组中,则在比较时使用char
。因此,您的if
语句应该是:
// vvvvvvv
if( binaryArray[i] == '1' )
{
c1++;
cout << c1;
}
// vvvvvvv
else if( binaryArray[i] == '0' )
{
c0++;
cout << rand()%c1+1;
}
第三,更改阵列的大小:
char binaryArray [0];
此处的必须不是0
。把它改成更普通的东西。例如,像512
一样,如果您认为这将足够大。
相关文章:
- 程序崩溃并显示"std::out_of_range"错误
- xmake总是报告:错误:无法获取cxx的程序,为什么
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 分段错误当我试图运行程序时出错
- 显示错误输出的简单数组排序程序
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- 在气泡排序程序中未声明错误功能
- 我在c ++矩阵计算器程序中找不到错误
- 叮当格式化程序多行格式配置错误
- 全局向量导致 C++ 程序结束时出现段错误
- 运行时间错误:程序跳过提示,以获取第二名和第三个名称
- Glibc 2.7 配置错误程序太旧
- 运行时错误:程序已停止响应
- OpenCV for Android:在 PATH 中找不到错误程序"sh"
- C++中的 scanf 错误 - 程序没有响应
- c++语法错误:程序以非零状态退出
- 运行时错误C++程序:检测到glibc,munmap_chunk(),指针无效
- libxml2错误程序c++