ConstStar
发布于 2022-09-04 / 237 阅读 / 0 评论 / 0 点赞

蓝桥杯2016年C组:打印方格

问题描述

小明想在控制台上输出 m x n 个方格。
比如 10x4的,输出的样子是:

+---+---+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+---+---+

(如果显示有问题,可以参见【图1.jpg】)
以下是小明写的程序,请你分析其流程,填写划线部分缺少的代码。

解决方案

代码

#include <iostream>

using namespace std;

void fun(int m, int n) {

    for (int i = 0; i < n; ++i) {

        //顶部
        if (!i) {
            for (int j = 0; j < m; ++j) {
                if (!j) {
                    cout << "+";
                }
                cout << "---+";
            }
            cout << endl;
        }


        // 第二层侧边
        for (int j = 0; j < m; ++j) {
            if (!j) {
                cout << "|";
            }
            cout << "   |";
        }
        cout << endl;

        // 底层
        for (int j = 0; j < m; ++j) {
            if (!j) {
                cout << "+";
            }
            cout << "---+";
        }
        cout << endl;
    }

}

int main() {

    int m, n;
    scanf("%d%d", &m, &n);

    fun(m, n);

    return 0;
}

评论