我的目标是使用2d阵列创建一个50x50"网格",并通过在网格中填写像' ^这样的字符来打印不同位置的不同形状,如三角形,正方形和矩形。 '和'#',像这样:
***** ^
***** ^ ^
***** ^ ^ ^
***** ^ ^ ^ ^
我目前的方法是使用嵌套的for循环来设置网格,创建边界并用“'”填充中间空间。 ':
for (r = 0; r < grid_h; r++) {
for (c = 0; c < grid_w; c++) {
grid[r][c] = ' ';
grid[r][0] = '*';
grid[r][grid_w - 1] = '*';
grid[0][c] = '*';
grid[grid_h - 1][c] = '*';
我不确定以上是否是最快/正确的方式来创建我所谓的&#34;网格&#34;用&#39; *&#39;在它周围(或者像绘画区一样)
无论如何,我最大的问题是:在网格中填写字符的最简单方法是什么?例如,如果我想从网格[1] [1]中打印一个正方形作为正方形的左上角,将网格[4] [4]作为正方形的右下角,我该怎么做呢正确的方式?非常感谢你。
答案 0 :(得分:2)
这是最优雅的方式,也可能是最快的方式:)。
char str[3][6] = {
" ^ ",
" ^^^ ",
"^^^^^"
};
第二个数字必须考虑每个字符串末尾的空终止符。它不能很好地扩展,因为它需要您手动填充它。但是结果可以立即看到,这很好。
如果您想以编程方式进行,而不是像我一样手工编写,您有两种选择:
|
for( int x = 1; x < 5; x++ ){
for( int y = 1; y < 5; y++ ){
grid[y][x] = 'R';
}
}