小杨的H字矩阵&小杨的日字矩阵 c++

 小杨的H字矩阵

题目描述

小杨想要构造一个NxN的H字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行N个字符,其中最左列、最右列都是 | (键盘右侧删除键下回车键上,shift+\),而中间一行(即第(N+1)/2行)的第2~N-1个字符都是 - ,其余所有字符都是半角小写字母 a 。例如,一个N=5的 H字矩阵如下:
 


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

输入

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

输出

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

样例输入

7

样例输出

|aaaaa|
|aaaaa|
|aaaaa|
|-----|
|aaaaa|
|aaaaa|
|aaaaa|

分析

1.字符二维数组

   可以先将二维数组都初始化为a,再把需要改变的改成所需的即可

代码如下:

#include
using namespace std;
long long n;
char a[50][50];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			a[i][j]='a';
		}
	}
	for(int i=1;i<=n;i++){
		a[i][1]='|';
		a[i][n]='|';
	}
	for(int j=2;j

2.是什么就输出什么

   每个字符的位置都是有条件的,所以我们可以利用这些条件输出

   | 的条件是在最左列、最右列,就是第1列、的n列

   - 的条件是在中间一行(即第(N+1)/2行)的第2~N-1个

   其余的都是a

代码如下:

#include
using namespace std;
long long n;
int main(){
	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==(n+1)/2&&j>=2&&j

小杨的日字矩阵

题目描述

小杨想要构造一个N*N 的日字矩阵( N为奇数),具体来说,这个矩阵共有 N行,每行N 个字符,其中最左列、最右列都是 | ,而中间一行(即第(N+1)/2行)的第2~N-1个字符都是 - ,其余所

有字符都是半角小写字母 x 。例如,一个N=5 的日字矩阵如下:

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

输入

一行一个整数 N( 5<=N<=49,保证N 为奇数)。

输出

输出对应的“日字矩阵”。

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

样例输入

7

样例输出

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

原理同上,不过多赘述

1.

代码如下:

#include
using namespace std;
long long n;
char a[50][50];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			a[i][j]='x';
		}
	}
	for(int i=1;i<=n;i++){
		a[i][1]='|';
		a[i][n]='|';
	}
	for(int j=2;j

2.

代码如下:

#include
using namespace std;
long long n;
int main(){
	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)&&j>=2&&j

你可能感兴趣的:(c++,比赛真题,矩阵,c++)