【发布时间】:2020-06-01 00:16:04
【问题描述】:
我正在学习 C++,希望对下面的代码获得一些功能方面的帮助。 我的代码的快速总结/用法:程序是显示随机(x,y)坐标,然后在网格中打印出坐标。
关于随机化 (x,y) 坐标,然后显示它们的网格位置,我完成了所有工作。
问题我遇到的是我的代码为每个坐标显示一个单独的网格,而不是在同一个网格上显示所有坐标。 [我在下面附上了我当前输出的图片]。
我知道这是一个功能问题..但是我无法考虑如何操作我的循环以便首先显示坐标,然后是一个带有所有坐标的网格...我希望这能让感觉。
我的代码片段:
//Note: value of n and k is given by user earlier in the code
vector<vector<int> > vec( n , vector<int> (n));
cout << "\nGrid with city locations:\n";
for(i=0; i<k; i++) {
//random select int coordinates (x,y) for each K(cities)
x = rand() % n + 0;
y = rand() % n + 0;
arrCity[i] = i;
//display coordinates for city 1..city2.. etc
cout << "City " << arrCity[i] <<": (" << x << "," << y << ")" << endl;
//display cities on grid
for (int rows=0; rows < n; rows++) {
for (int columns=0; columns < n; columns++) {
if ((rows == y) && (columns == x)) {
cout << "|" << (i);
} else {
cout << "|_";
}
}
cout << "\n";
}
cout << "\n";
}
电流输出:
如您所见,每个“城市坐标”都有一个单独的网格
【问题讨论】:
-
您在循环内绘制网格,在其中随机化城市,这就是它多次绘制的原因。您需要随机化城市并存储城市编号和 x、y、坐标,例如在向量或结构数组中。然后在绘制网格时检查该单元格位置是否与城市匹配。如果是,则绘制正确的城市编号
标签: c++ loops random grid coordinates