代码之家  ›  专栏  ›  技术社区  ›  Raph

在C中创建空心矩形,而不添加空格作为其元素

  •  0
  • Raph  · 技术社区  · 7 年前

    下面的代码使用2D数组创建一个空心矩形。

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

    有没有可能不经许可就这样做 其他的 在我的数组中添加空格?

    简单地摆脱 其他的 条件填充了充满奇怪字符的假设空白。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Sergey Kalinichenko    7 年前

    简单地去掉else条件就可以填充充满奇怪字符的所谓空白。

    自从 box 似乎是全局变量,其内容最初初始化为全零( why? )

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

    • 写入循环以预填充 box[][] 带空格,或
    • 使用 memset 预填充 带空格,或
    • 保留 else 分支,用于填充未使用的 方框[][] 带有空格的单元格。

    我宁愿最后一种解决方案是最经济的。我还将使用条件表达式重写循环,如下所示:

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