在C++中创建网格

Create grid in C++

本文关键字:网格 创建 C++      更新时间:2023-10-16

我正在尝试用c ++创建一个nXn网格。到目前为止,我有这个:

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
int num_rows;
int num_columns;
string board[num_rows][num_columns];
cout << "Enter number of rows" <<"n";
cin >> num_rows;
cout << "Enter number of columns" <<"n";
cin >> num_columns;

for (int i=0; i<num_rows;i++){
for(int j=0; j<num_columns; j++){
if(j ==0)
board[i][j]="|_|";
else
board[i][j]= "_|";
}
}

for (int i=0; i<num_rows;i++){
for(int j=0; j<num_columns; j++){
cout<< board[i][j];
}
cout<<"n";
}

return 0;
}

代码最高可达 3X3。 对于 5X5,我得到的输出如下:

||||?;????G??|P?G???;??p_| ||||?;????G??|P?G???;??p_| ||||?;????G??|P?G???;??p_| ||||?;????G??|P?G???;??p_| ||||?;????G??|P?G???;??p_|

谁能告诉我我可能做错了什么?

对于可变长度数组,可以使用 vector,以下是修改后的代码

#include <string.h>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int num_rows;
int num_columns;
vector<vector<string>> board;
cout << "Enter number of rows"
<< "n";
cin >> num_rows;
cout << "Enter number of columns"
<< "n";
cin >> num_columns;
for (int i = 0; i < num_rows; i++) {
vector<string> row;
for (int j = 0; j < num_columns; j++) {
if (j == 0)
row.push_back("|_|");
else
row.push_back("_|");
}
board.push_back(row);
}
for (int i = 0; i < num_rows; i++) {
for (int j = 0; j < num_columns; j++) {
cout << board[i][j].c_str();
}
cout << "n";
}
return 0;
}