要求实现图形的最外圈由Z组成,然后向内一圈由Y组成,再向内一圈由X组成,我的代码只能把数组里的一个一个递减,不能实现一圈一圈减,


#include<stdio.h>
int main()
{
    int i,j,x=0,y=0,k=0,n,tx,ty,n2,m;
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    char a[1003][1003];
    scanf("%d",&n);
    m=2*n-1;
    for(i=0;i<m*m;i++)
    {
        a[x][y]='Z'-i%24;
        tx=x+dx[k];
        ty=y+dy[k];
        if(tx<0||ty<0||tx==m||ty==m||a[tx][ty]) 
            k=(k+1)%4;
        x=x+dx[k];
        y=y+dy[k];
    }
    for(x=0;x<m;x++)
    {    
            for(y=0;y<m;y++) printf("%c",a[x][y]);
        printf("\n");
    }
    return 0;
}
//输入    5
//输出 
//ZZZZZZZZZ
//ZYYYYYYYZ
//ZYXXXXXYZ
//ZYXWWWXYZ
//ZYXWVWXYZ
//ZYXWWWXYZ
//ZYXXXXXYZ
//ZYYYYYYYZ
//ZZZZZZZZZ