0

我正在尝试显示此循环二维数组,但我得到一个奇怪的输出,我不确定我的代码有什么问题。我正在使用 if 语句将外部列和行转换为“x”,其余部分应为空格。

#include <iostream>
using namespace std;

int main() {


const int H = 25;
const int W = 82;


char Map[H][W]; // test map display


for(int i = 0; i < H; i++ ){ // display the map
    for(int j = 0; j < W; j++){
        if(i == 0 || i == 24 || j == 0 || j == 81) Map[i][j] = 'x';
        else Map[i][j] = ' ';
        cout << Map[i][j];
    }
}






    return 0;
}

我的目标输出应该是这样的

xxxxxxxxxxxxxxxxxxx
x                 x
x                 x
x                 x
x                 x
xxxxxxxxxxxxxxxxxxx
4

1 回答 1

3

我怀疑您想在填充每一行后打印一个新行:

for(int i = 0; i < H; i++ ){ // display the map
    for(int j = 0; j < W; j++){
        if(i == 0 || i == 24 || j == 0 || j == 81) Map[i][j] = 'x';
        else Map[i][j] = ' ';
        cout << Map[i][j];
    }
    cout << '\n';  //<-------- new line
}

如果您告诉它,计算机只会开始一个新行。
您可能需要考虑是否要将这些存储在Map

于 2013-11-10T17:26:09.367 回答