小杨的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<bits/stdc++.h>
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<n;j++){a[(n+1)/2][j]='-';}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j];}cout<<"\n";}return 0;
}
2.是什么就输出什么
每个字符的位置都是有条件的,所以我们可以利用这些条件输出
| 的条件是在最左列、最右列,就是第1列、的n列
- 的条件是在中间一行(即第(N+1)/2行)的第2~N-1个
其余的都是a
代码如下:
#include<bits/stdc++.h>
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) cout<<"-";else cout<<"a";}cout<<"\n";}return 0;
}
小杨的日字矩阵
题目描述
小杨想要构造一个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<bits/stdc++.h>
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<n;j++){a[1][j]='-';a[(n+1)/2][j]='-';a[n][j]='-';}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j];}cout<<"\n";}return 0;
}
2.
代码如下:
#include<bits/stdc++.h>
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<n) cout<<"-";else cout<<"x";}cout<<"\n";}return 0;
}