[GESP202403二级]日字矩阵

阅读量: 51 编辑

27、小杨的日字矩阵

小杨想要构造⼀个N*N的日字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行 N 个字符,其中最左列、最右列都是 | ,而第⼀行、最后⼀行、以及中间⼀行(即第 (N+1)/2行)的第2 ~ N-1个字符都是 - ,其余所有字符都是半角小写字母 x 。例如,⼀个N=5的日字矩阵如下所示。

|---|
|xxx|  
|---|  
|xxx|  
|---|

请你帮小杨根据给定的 打印出对应的“日字矩阵”。

【输入描述】

⼀行⼀个整数N(5≤N≤49 ,保证N为奇数)。

【输出描述】

输出对应的“日字矩阵”。请严格按格式要求输出,不要擅⾃添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是 - ,要么是 | ,要么是 x 。你的输出必须和标准答案完全⼀致才能得分,请在提交前仔细检查。

【特别提醒】

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

【输入样例】

1 7

【输出样例】

|-----|
|xxxxx| 
|xxxxx| 
|-----|  
|xxxxx|
|xxxxx|  
|-----|

【参考程序】

// 爱码岛编程
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            char ch;
            if (j == 0 || j == n - 1) {
                ch = '|';
            } else if (i == 0 || i == n - 1 || i == n / 2) {
                ch = '-';
            } else {
                ch = 'x';
            }
            cout << ch;
        }
        cout << endl;
    }
    return 0;
}
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司