在C中创建一个不添加空格作为其元素的空心矩形
Creating a hollow rectangle without adding spaces as its elements in C
以下代码创建一个带有二维数组的空心矩形。
int main(){
int x,y;
for(x=0; x<11; x++)
for(y=0; y<11; y++)
if (x==0 || x==10 || y==0 || y==10)
box [x][y] = '=';
else{
box[x][y]=' ';
}
}
if
函数创建边框,else
函数在其中创建空心 space。
是否可以在不让 else
向我的数组中添加空白的情况下执行此操作?
只需摆脱 else
条件即可填充本应空无一物的 space,其中充满了奇怪的字符。
Simply getting rid of the else condition fills the supposedly empty spaces full of weird characters.
由于box
似乎是一个全局变量,其内容最初被初始化为全零(why?)
您希望将内容初始化为空格,因此您需要执行以下操作之一:
- 编写一个循环以用空格预填充
box[][]
,或者
- 使用
memset
预填充 box[][]
空格,或
- 保留
else
分支,用空格填充未使用的 box[][]
单元格。
我更喜欢最后一种解决方案,因为它最经济。我还会用条件表达式重写循环,如下所示:
for(y=0; y<11; y++) {
box [x][y] = (x==0 || x==10 || y==0 || y==10) ? '=' : ' ';
}
以下代码创建一个带有二维数组的空心矩形。
int main(){
int x,y;
for(x=0; x<11; x++)
for(y=0; y<11; y++)
if (x==0 || x==10 || y==0 || y==10)
box [x][y] = '=';
else{
box[x][y]=' ';
}
}
if
函数创建边框,else
函数在其中创建空心 space。
是否可以在不让 else
向我的数组中添加空白的情况下执行此操作?
只需摆脱 else
条件即可填充本应空无一物的 space,其中充满了奇怪的字符。
Simply getting rid of the else condition fills the supposedly empty spaces full of weird characters.
由于box
似乎是一个全局变量,其内容最初被初始化为全零(why?)
您希望将内容初始化为空格,因此您需要执行以下操作之一:
- 编写一个循环以用空格预填充
box[][]
,或者 - 使用
memset
预填充box[][]
空格,或 - 保留
else
分支,用空格填充未使用的box[][]
单元格。
我更喜欢最后一种解决方案,因为它最经济。我还会用条件表达式重写循环,如下所示:
for(y=0; y<11; y++) {
box [x][y] = (x==0 || x==10 || y==0 || y==10) ? '=' : ' ';
}