C ++ for循环2D数组奇怪的输出

时间:2013-11-10 17:20:03

标签: c++ arrays

我正在尝试为循环2d数组显示这个,但我得到一个奇怪的输出,我不知道我的代码有什么问题。我正在使用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

1 个答案:

答案 0 :(得分: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中。