创建一个空心矩形而不在C

时间:2017-11-18 11:53:15

标签: c if-statement multidimensional-array stdio

以下代码使用2D-Array创建一个空心矩形。

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函数在其中创建空心空间。

是否可以在不让else向我的数组添加空格的情况下执行此操作?

简单地摆脱else条件会填满所谓的空白空间。

1 个答案:

答案 0 :(得分:0)

  

简单地摆脱其他条件填补了所谓的空洞,充满了怪异的角色。

由于box似乎是全局变量,因此其内容最初初始化为全零(why?

您希望将内容初始化为空格,因此您需要执行以下操作之一:

  • 使用空格或
  • 编写循环以预填充box[][]
  • 使用memset预先填充box[][]空格或
  • 保留else分支,用空格填充未使用的box[][]单元格。

我希望最后的解决方案是最经济的。我还会用条件表达式重写循环,如下所示:

for(y=0; y<11; y++) {
    box [x][y] = (x==0 || x==10 || y==0 || y==10) ? '=' : ' ';
}