思路:
先将图形分为两个部分,分开,两个部分是一样的因此打出一个就可以了
先判断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;
}