输入一个三元组 外框尺寸n,中心花色,外框花色
#include <iostream>
#include <cstdio>
using namespace std;
char matrix[80][80];
int main()
{
int n,i;
char a,b;
bool firstCase=true; //第一组数的标志A
scanf("%d %c %c",&n,&a,&b);
if(firstCase==true)
firstCase=false;
else
printf("/n"); //第一组数结束后 换行交换使用第二组数B
for(i=0;i<=n/2;i++){ //(i,i)为每一圈左上角
int j=n-i-1; //(j,j)为每一圈右下角
int length=n-2*i;
char c; //求当前填充字符c是第几组数
if((n/2-i)%2==0) //离中心地区奇偶数来判断c为何值
c=a;
else
c=b;
for(int k=0;k<length;k++){ //对每一轮的四个边进行赋值c
matrix[i][i+k]=c;
matrix[i+k][i]=c;
matrix[j][j-k]=c;
matrix[j-k][j]=c;
}
}
if(n!=1){ //消去圈的四个顶角
matrix[0][0]=' ';
matrix[0][n-1]=' ';
matrix[n-1][0]=' ';
matrix[n-1][n-1]=' ';
}
for( i=0;i<n;i++){ //打印
for(int j=0;j<n;j++)
printf("%c",matrix[i][j]);
printf("\n");
}
return 0;
}