gpt4 book ai didi

c++ - 对 C++ 中的二维数组感到困惑

转载 作者:行者123 更新时间:2023-11-28 00:05:40 30 4
gpt4 key购买 nike

我在用 C++ 创建二维 bool 数组时遇到了问题。我编写了一个用于创建和打印所有 bool 数组的快速程序。

#include <iostream>

using namespace std;

int main() {

const int WIDTH = 20;
const int HEIGHT = 20;

bool world [HEIGHT][WIDTH];

for(int i = 0; i < HEIGHT; i++){
for(int j = 0; j < WIDTH; j++){
world[i][j] = true;
}
}

for(int i = 0; i < HEIGHT; i++){
for(int j = 0; j < WIDTH; j++){
if(world[i][j]){
cout << j;
}else{
cout << ' ';
};
}
cout << "-" << i << endl;
}

return 0;

}

这是他的输出。

012345678910111213141516171819-0
012345678910111213141516171819-1
012345678910111213141516171819-2
012345678910111213141516171819-3
012345678910111213141516171819-4
012345678910111213141516171819-5
012345678910111213141516171819-6
012345678910111213141516171819-7
012345678910111213141516171819-8
012345678910111213141516171819-9
012345678910111213141516171819-10
012345678910111213141516171819-11
012345678910111213141516171819-12
012345678910111213141516171819-13
012345678910111213141516171819-14
012345678910111213141516171819-15
012345678910111213141516171819-16
012345678910111213141516171819-17
012345678910111213141516171819-18
012345678910111213141516171819-19

它创建一个二维数组,将他的所有值设置为 true,然后打印该数组。这很好,问题是当二维数组变大时。例如,如果我将 WIDTH 和 HEIGHT 的大小更改为 30,当我打印数组时,我将得到以下输出:

01234567891011121314151617181920212223242526272829-0
01234567891011121314151617181920212223242526272829-1
01234567891011121314151617181920212223242526272829-2
01234567891011121314151617181920212223242526272829-3
01234567891011121314151617181920212223242526272829-4
01234567891011121314151617181920212223242526272829-5
01234567891011121314151617181920212223242526272829-6
01234567891011121314151617181920212223242526272829-7
01234567891011121314151617181920212223242526272829-8
01234567891011121314151617181920212223242526272829-9
01234567891011121314151617181920212223242526272829-10
01234567891011121314151617181920212201234567891011121314151617181920212223242526272829-11
01234567891011121314151617181920212223242526272829-12
01234567891011121314151617181920212223242526272829-13
01234567891011121314151617181920212223242526272829-14
01234567891011121314151617181920212223242526272829-15
01234567891011121314151617181920212223242526272829-16
01234567891011121314151617181920212223242526272829-17
01234567891011121314151617181920212223242526272829-18
01234567891011121314151617181920212223242526272829-19
01234567891011121314151617181920212223242526272829-20
01234567891011121314151617181920212223242526272829-21
01234567891011121314151617181920212223242526272829-22
01234567891011121314151617181920212223242526272829-23
01234567891011121314151617181920212223242526272829-24
01234567891011121314151617181920212223242526272829-25
01234567891011121314151617181920212223242526272829-26
01234567891011121314151617181920212223242526272829-27
01234567891011121314151617181920212223242526272829-28
01234567891011121314151617181920212223242526272829-29

正如您在第 11 行看到的那样,它一直计数到 22 并为 j 重新启动 for 循环。我不知道哪里出了问题,我需要一个大小为 [50][50] 的 bool 值的二维数组,但我不知道哪里出了问题。

编辑:问题出在编译器上。我在 Linux 机器上的 GCC 编译器上尝试了相同的代码并且运行良好。这段代码工作正常,问题是编译器或带有 CLion IDE 的编译器。它可以编译,但我在运行或生成的输出方面遇到问题。该代码在 GCC 编译器或 Unix 机器上运行良好

最佳答案

好的,这在逻辑上是绝对正确的,我已经使用 20 和 30 在在线编译器上测试了你的代码。重新启动你的编译器或尝试另一个可靠的编译器......这是我执行你的代码时结果的屏幕截图在线的。

enter image description here enter image description here

关于c++ - 对 C++ 中的二维数组感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35795196/

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