水题,坑的是输出格式,非常的怪。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char s[100][100];
int main()
{
int n,step,i,j,first=1;
int r,l,u,d;
char c1,c2;
while(~scanf("%d %c %c",&n,&c1,&c2))
{
if(!first) printf("\n");
first=0;
if(n==1)
printf("%c\n",c1);
else
{
step=(n+1)/2;
r=u=0;l=d=n-1;
while(step)
{
for(i=r;i<=l;i++)
if(step%2==1)
s[u][i]=s[d][i]=c1;
else s[u][i]=s[d][i]=c2;
for(i=u;i<=d;i++)
if(step%2==1)
s[i][r]=s[i][l]=c1;
else s[i][r]=s[i][l]=c2;
step--;
r++;l--;u++;d--;
}
s[0][0]=s[0][n-1]=s[n-1][0]=s[n-1][n-1]=' ';
for(i=0;i<=n-1;i++)
s[i][n]='\0';
for(i=0;i<=n-1;i++)
printf("%s\n",s[i]);
}
}
return 0;
}