题目描述
小杨想要构造一个m*m 的 N 字矩阵( m为奇数),这个矩阵的从左上角到右下角的对角线、第1 列和第m 列都 是半角加号 + ,其余都是半角减号 - 。例如,一个 5*5 的 N 字矩阵如下:
+---+
++--+
+-+-+
+--++
+---+
请你帮小杨根据给定的 m 打印出对应的 N 字矩阵。
输入
第一行包含一个正整数m 。
输出
输出对应的 N 字矩阵。
样例输入
5
样例输出
+---+
++--+
+-+-+
+--++
+---+
提示
对于全部数据,保证有3<=m<=49 且m 为奇数。
示例代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long m;
char a[50][50];
cin>>m;
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
a[i][j]='-';
}
}//把所有格子变成“-”
for(int i=1;i<=m;i++){
a[i][1]='+';//把第一列变成“+”
a[i][m]='+';//把最后一列变成“+”
a[i][i]='+';//把中间部分变成“+”*
}
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<"\n";
}
return 0;
}
*我们发现除去旁边两列,其余“+”的纵坐标与横坐标都一样
所以把横纵坐标一样的变为“+”