螺旋方阵和简易连连看 出错


#include<stdio.h>
char a[99][99]={0};
int n=0;
int main()
{    int i=0,j=0,k=0,worn=0,q=0,w=0,e=0,r=0,count=0;
    
    char p=0,tr_1=0,tr_2=0;
    scanf("%d",&n);
    getchar();
    count=n*n*2;
    for(i=1;i<=2*n;i++)
    {

        for(j=1;j<=2*n;j++)
        {
            scanf("%c",&p);
        getchar();
            a[i][j]=p;
        }
    }
    
    
//    {
//    int i=0,j=0;
//    for(i=1;i<=2*n;i++)
//    {
//        for(j=1;j<=2*n;j++)
//        {
//            if(j==2*n)
//            {
//                printf("%c\n",a[i][j]);
//            }
//            else
//            {
//                printf("%c ",a[i][j]);
//            }
//            
//        }
//    }
//    }
    
    
    

    scanf("%d",&k);
    for(i=0;i<k;i++)
    {
        scanf("%d %d %d %d",&q,&w,&e,&r);
//        printf("%c",a[q][w]);
        tr_1=a[q][w];
        tr_2=a[e][r];
        if(    tr_1==tr_2&&tr_1!='*')
        {
            a[q][w]='*';
            a[e][r]='*';
            count--;
            if(count==0)
            {
                printf("Congratulations!");
                return 0;
            }
            {
                    
                    {
                    int i=0,j=0;
                    for(i=1;i<=2*n;i++)
                    {
                        for(j=1;j<=2*n;j++)
                        {
                            if(j==4)
                            {
                                printf("%c\n",a[i][j]);
                            }
                            else
                            {
                                printf("%c ",a[i][j]);
                            }
                            
                        }
                    }
                    }
            }
        }
        else
        {
            printf("Uh-oh");
            worn++;
        }
        if(worn==3)
        {
            printf("Game Over");
            return 0;
        }
    }
    
    
 } 
#include<stdio.h>
int main()
{    int k=1,a[99][99]={0},i=0,j=0,n=0,m=0;
    
    scanf("%d",&n);
    for(m=0;m<n-2;m++)
    {
        for (j=0+m;j<=n-m-1;j++)
        {
            a[m][j]=k;
            k++;
        }///j为最后一个 j=n-1 
        j--;
        k--;
        for (i=0+m;i<=n-1-m;i++)
        {
            a[i][j]=k;
            k++;
        }///i为最后一个 i=n-1 
        k--;
        i--;
        for (;j>=m+0;j--)
        {
            a[i][j]=k;
            k++;
        }///j为0; 
        j++;k--;
        for (;i>0+m;i--)
        {
            a[i][j]=k;
            k++;
        }
        i++;
    }
    if(n%2!=0)
    
    {int q=0;
     q=(n-1)/2;
    
            a[q][q]=k;
            k++;
        
    }    
    if(n==2)
    
    {
        printf("%3d%3d\n%3d%3d",1,2,4,3);
        return 0;
    }    
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(j==n-1)
            {
                printf("%3d\n",a[i][j]);
            }
            else
            {
                printf("%3d",a[i][j]);
            }
            
        }
    }
    
    
 }