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;
}