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