找了半天bug,才发现scanf里没有空格,输入的时候我却加了空格。
觉着今天这个叠框循环控制有点难,还是没怎么看懂。继续看几遍。。
#include<stdio.h>
int main(){
int buf[82][82];
char a,b;
int n;
bool flag=true;
while(scanf("%d %c %c",&n,&a,&b)!=EOF){
if(flag==true)
flag=false;
else
printf("\n");
for(int i=1,j=1;i<=n;i+=2,j++){
int x=n/2+1,y=x;
x-=j-1;
y-=j-1;
char c=j%2==1?a:b;
for(int k=1;k<=i;k++){
buf[x+k-1][y]=c;
buf[x][y+k-1]=c;
buf[x+i-1][y+k-1]=c;
buf[x+k-1][y+i-1]=c;
}
}
if(n!=1){
buf[1][1]=' ';
buf[1][n]=' ';
buf[n][1]=' ';
buf[n][n]=' ';
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
printf("%c",buf[i][j]);
printf("\n");
}
}
return 0;
}