首页 > 解决方案 > 用数组打印空心正方形

问题描述

我正在尝试打印一个空心正方形。我目前绘制了顶部、底部和左侧边框,但由于某种原因无法将右侧绘制在正确的位置。我敢肯定这是一个简单的解决方法,但我对此很陌生,所以对菜鸟感到抱歉。

int main()
{
    const int boardX = 10;
    const int boardY = 10;
    char gameBoard[boardX][boardY];


    for (int i = 0; i != boardX; i++)
    {
        for (int k = 0; k != boardY; k++)
        {
            if (i == 0 || i == 9 || k == 0 || k == 9)
            {
                gameBoard[i][k] = '*';
                cout << gameBoard[i][k];
            }

        }
        cout << "\n";
    }

    system("pause");
    return 0;
}

这就是它打印的内容

标签: c++arraysborder

解决方案


您忘记打印空格以使正方形空心:

int main()
{
    const int boardX = 10;
    const int boardY = 10;
    char gameBoard[boardX][boardY];


    for (int i = 0; i != boardX; i++)
    {
        for (int k = 0; k != boardY; k++)
        {
            if (i == 0 || i == 9 || k == 0 || k == 9)
            {
                gameBoard[i][k] = '*';
                cout << gameBoard[i][k];
            }
            else
            {
                gameBoard[i][k] = ' ';
                cout << gameBoard[i][k];
            }

        }
        cout << "\n";
    }

    return 0;
}

注意:我按照您的风格使更改的部分脱颖而出,但通常您会将电路板的构造分开并将其打印到屏幕上,形成单独的代码块/功能。


推荐阅读