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

代码:

带注释版:

cpp 复制代码
#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;//程序结束
}

不带注释版:

cpp 复制代码
#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;
}
相关推荐
个 人 练 习 生6 分钟前
C++中的内存管理
开发语言·c++·经验分享·学习
续写烂尾8 分钟前
MK SD NAND(贴片式TF卡)替代Nor Flash:1Gb容量与256Mb Nor
算法·microsoft
u01110267540 分钟前
图片预览越来越占内存聊聊 URL.createObjectURL 的释放时机
图像处理·深度学习·算法·ai作画
Zane199440 分钟前
同样是遍历图,为什么BFS能保证找到最短路径,DFS却不行
算法
无限码力41 分钟前
2026华为OD机试真题 新系统 9月27日【坚果巧克力】
算法·华为od·华为od机考·华为od机试真题·华为od机试·华为od机考真题题解·华为社招笔试真题
samforce1 小时前
叹息之墙——人类认知 AI,终将遇到的一堵同构之墙
人工智能·深度学习·算法·哲学·认知科学
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】ChatSDK整体实现
网络·c++·人工智能·学习·架构
励志不掉头发的内向程序员1 小时前
【从零写一个CAD 02】画完第一条线之后:实体容器、Esc 取消,和按了没反应的键盘
开发语言·c++·qt·学习·系统架构
l1t1 小时前
编译测试兼容gzip并行压缩解压工具pigz
c++·算法
无名猿1 小时前
对象存储期全解:automatic / static / dynamic / thread
c++·内存管理·现代c++·语法基础