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

C++ for loop 2D array strange output

本文关键字:输出 数组 循环 2D C++      更新时间:2023-10-16

我正在尝试为循环 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

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

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中。