思路:
先将图形分为两个部分,分开,两个部分是一样的因此打出一个就可以了
先判断n/2+1是奇数还是偶数(奇数偶数最外侧的字符不一样)
#include<stdio.h>
#include<string.h>
int main()
{
int n,T=0;
char x,y,l,q;
char a[100][100];
while(~scanf("%d %c %c",&n,&x,&y))
{
if(T)
printf("\n");
T++;
int i,j;
if(n==1)
{
printf("%c\n",x);
continue;
}
if((n/2+1)%2)
{
q=x;
x=y;
y=q;
}
for(i=0;i<=n/2;i++)
{
if(i%2==0)
l=y;
else
l=x;
for(j=i;j<n-i;j++)
{
a[i][j]=l;
}
strncpy(a[i+1],a[i],n);
}
a[0][n-1]=' ';
a[0][0]=' ';
a[n-1][0]=' ';
a[n-1][n-1]=' ';
for(i=0;i<=n/2;i++)
{
for(j=0;j<n;j++)
printf("%c",a[i][j]);
printf("\n");
}
for(i=n/2-1;i>=0;i--)
{
for(j=0;j<n;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
return 0;
}