首先,这题数据肯定有大问题。为什么答案输出了数字?

  • 20250228 upd:该数据已被修复,可放心提交。

好了,不提这个了。讲讲思路:

因为 a 有很多,单独填充很麻烦,所以先把数组的所有值都填充字符 a

然后就在第一列和最后一列填充 |

最后按题目要求在 ( n + 1 ) 2 \frac{(n+1)}{2} 2(n+1) 的第 2 2 2 n − 1 n-1 n1 列填充 -,完事。

整理一下:

  1. 全部填充 a
  2. 在第一列和最后一列填充 |
  3. ( n + 1 ) 2 \frac{(n+1)}{2} 2(n+1) 的第 2 2 2 n − 1 n-1 n1 列填充 -
  4. 输出答案。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
char a[101][101];
signed 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]='|';
	}
	int t=(n+1)/2;
	for(int i=2;i<=n-1;i++){
		a[t][i]='-';
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)cout<<a[i][j];
		cout<<'\n'; 
	}
	return 0;
}

这就是全部了,希望可以帮到你!

Logo

集算法之大成!助力oier实现梦想!

更多推荐