我正在尝试输出一个带有边框的2D数组,但由于一些奇怪的原因,我没有得到任何输出,只是一个空格。我很确定问题出在if语句中,但我不确定是什么问题。
#include <iostream>
#include "windows.h"
using namespace std;
//prototypes
void DisplayMap();
void SetBorder();
//global vars
const int H = 70;
const int W = 40;
char Map[H][W];
int main()
{
//system("cls");
DisplayMap();
SetBorder();
return 0;
}
void SetBorder(){
for(int i = 0; i < H; i++ ){
for(int j = 0; j < W; j++){
if(i == 0 || i == 69 || j == 0 || j == 39 ){ Map[i][j] = 'x';}
// else Map[i][j] = ' ';
}
}
}
void DisplayMap(){
for(int i = 0; i < H; i++ ){
for(int j = 0; j < W; j++){
cout << Map[i][j];
}
cout << "\n";
}
}
答案 0 :(得分:3)
SetBorder();
DisplayMap();
交换函数调用。您想先设置边框字符,然后显示地图。
答案 1 :(得分:2)
您需要先填写Map
,然后再显示它:
int main()
{
//system("cls");
SetBorder();
DisplayMap();
return 0;
}