样例输入:
11 B A
5 @ w
样例输出:
B B B B B B B B B
B A A A A A A A A A B
B A B B B B B B B A B
B A B A A A A A B A B
B A B A B B B A B A B
B A B A B B B A B A B
B A B A B B B A B A B
B A B A A A A A B A B
B A B B B B B B B A B
B A A A A A A A A A B
B B B B B B B B B @ @ @
@ W W W @
@ W @ W @
@ W W W @
@ @ @
代码如下:
#include<cstdio>
#include<iostream>
using namespace std;
char matrix[80][80];
//奇数 外框 内框
int main() {
int n;
char outc, inc;
while (cin >> n >> outc >> inc) {
int n_2 = n / 2;//除中心外的圈数
for (int i = 0; i < n_2; i++) {//从外圈到内圈
//最外圈从(0,0)开始,每条边11个字符,分成4个部分的话,每个部分10个字符
//第二个圈从(1,1)开始,每个部分8个字符
char tmp = i % 2 ? inc : outc;
for (int j = i; j < n - i - 1; j++) {
matrix[i][j] = tmp;
matrix[j][n - i - 1] = tmp;
matrix[n - i - 1][j + 1] = tmp;
matrix[j + 1][i] = tmp;
}
}
matrix[n_2][n_2] = outc;//最中间的符号
//最外层4角改为空格
matrix[0][0] = matrix[0][n - 1] = matrix[n - 1][0] = matrix[n - 1][n - 1] = ' ';
printf("---------------------\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%c ", matrix[i][j]);
}
printf("\n");
}
}
return 0;
}