C++ 我的代码-布尔真值表出错
我目前正在开发一个程序,它可以打印5个变量的真值表。我使用的是二维数组。我的代码目前生成该表,但表示该表已损坏,“变量”表周围的堆栈已损坏。有帮助吗C++ 我的代码-布尔真值表出错,c++,truthtable,C++,Truthtable,我目前正在开发一个程序,它可以打印5个变量的真值表。我使用的是二维数组。我的代码目前生成该表,但表示该表已损坏,“变量”表周围的堆栈已损坏。有帮助吗 #include <iostream> using namespace std; int main() { bool table[5][32]; for (int i = 0; i < 32; i++) { for (int j = 0; j < 5; j++) {
#include <iostream>
using namespace std;
int main() {
bool table[5][32];
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 5; j++) {
table[i][j] = ((i >> j)& 1);
}
}
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 5; j++) {
cout << table[i][j] << " ";
}
cout << endl;
}
return 0;
}
#包括
使用名称空间std;
int main(){
bool表[5][32];
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
表[i][j]=((i>>j)和1);
}
}
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
cout索引错误。只有表[0]
到表[4]
可用,因此访问表[5]
到表[31]
是非法的
试试这个:
#include <iostream>
using namespace std;
int main() {
bool table[32][5]; // swap 32 and 5
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 5; j++) {
table[i][j] = ((i >> j)& 1);
}
}
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 5; j++) {
cout << table[i][j] << " ";
}
cout << endl;
}
return 0;
}
#包括
使用名称空间std;
int main(){
布尔表[32][5];//交换32和5
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
表[i][j]=((i>>j)和1);
}
}
对于(int i=0;i<32;i++){
对于(int j=0;j<5;j++){
cout试图从数组中读取超出范围的值
如果需要5x32
矩阵,请使用以下代码:
for (int i = 0; i < 5; i++) { // 32-> 5
for (int j = 0; j < 32; j++) { // 5->32
bool table[32][5]; //it was table[5][32];
因此,交换这些值只是将其与我分配变量并打印的for循环对齐?是的,您在for循环中添加了最多32个i
变量,但第一个数组只有5个单元格。