void de(int (*squre)[100],int x,int y)
{
    int i=0,j=0;
    bool filp=false;
    while (i!=x-1 || j!=y-1)
    {
        printf("%d ",squre[j][i]);
        if (filp)i--,j++;
        else i++,j--;
        //转向
        if (i<0 || j<0 || i==x || j==y)
            filp=!filp;
        //修正
        if (i<0 && j==y)
            i=1,j=y-1;
        else
        {
            if (i<0)i=0;else if (i==x)i=x-1,j+=2;
            if (j<0)j=0;else if (j==y)j=y-1,i+=2;
        }
    }
    printf("%d\n",squre[x-1][y-1]);
}
话说,N久以前曾经写过一个……