GESP2级2403 小杨的日字矩阵
题目描述
小杨想要构造一个 N × N 的日字矩阵(N为奇数),具体来说,这个矩阵共有N行 ,每行N个字符,其中最左列、最右列都是 | ,而第一行、最后一行、以及中间一行(即第 (N+1)/2 行)的第2 ~ N - 1 个字符都是 - ,其余所有字符都是半角小写字母 x。例如,一个 N = 5 的日字矩阵如下:
|---|
|xxx|
|---|
|xxx|
|---|
请你帮小杨根据给定的N打印出对应的“日字矩阵”。
输入
一行一个整数N (5 ≤ N ≤ 49,保证N为奇数)。
输出
输出对应的“日字矩阵”。
请严格按格式要求输出,不要擅添加任何空格、标点、空等任何符号。你应该恰好输出N行,每除了换行符外恰好包含N个字符,这些字符要么是 - ,要么是 | ,要么是 x 。你的输出必须和标准答案完全致才能得分, 请在提交前仔细检查。
样例输入 复制
5
样例输出 复制
|---|
|xxx|
|---|
|xxx|
|---|
代码:
带注释版:
#include<iostream>//头文件
using namespace std;//命名空间
int main() {//主函数
int n;//定义数据
cin>>n;//输入
//输出
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
if(j==1||j==n) {//如果是边上输出|
cout<<"|";
} else if(i==1||i==(n+1)/2||i==n) {//如果是奇数行输出-
cout<<"-";
} else {//否则是偶数行,输出x
cout<<"x";
}
}
cout<<endl;//输出一行后换行
}
return 0;//程序结束
}
不带注释版:
#include<iostream>
using namespace std;
int main() {
int n;
cin>>n;
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
if(j==1||j==n) {
cout<<"|";
} else if(i==1||i==(n+1)/2||i==n) {
cout<<"-";
} else {
cout<<"x";
}
}
cout<<endl;
}
return 0;
}