分享一个螺旋矩阵的实现解决方法

分享一个螺旋矩阵的实现
C/C++ code
#include <stdio.h>

void csh ( const int i, const int m, int arr[i][m] );
void cl ( const int i, const int m, int arr[i][m] );
void print ( const int i, const int m, int arr[i][m] );

int main(int argc, char **argv)
{
    int x,y;

    printf ( "X,Y:" );
    scanf ( "%d,%d", &x, &y );
    int arr[x+2][y+2];
    printf ( "%d\t%d\n", x, y );

    csh ( x+2, y+2, arr );
    cl ( x+2, y+2, arr );
    print ( x+2, y+2, arr );
        
    return 0;
}

void csh ( int i, const int m, int arr[i][m] ) {
    int j,k;
    for ( j = 0; j < i; j++ ){
        for ( k = 0; k < m; k++ ) {
            arr[j][k] = 0;
        }
    }
    for ( j = 0; j < i; j++ ) {
        arr[j][0] = arr[j][m-1] = -1;
    }
    for ( j = 0; j < m; j++ ) {
        arr[0][j] = arr[i-1][j] = -1;
    }
}

void cl (const int i, const int m, int arr[i][m]) {
    int x,y,j,k,n;
    x = y = 1;
    j = k = n = 0;
    while ( arr[x+j][y+k] == 0){
        while ( arr[x+j][y+k] == 0){
            arr[x += j][y += k] = n++;
        }
        if ( arr[x][y+1] == 0 ){
            j = 0;
            k = 1;
        } else if ( arr[x+1][y] == 0 ) {
            j = 1;
            k = 0;
        } else if ( arr[x][y-1] == 0 ) {
            j = 0;
            k = -1;
        } else {
            j = -1;
            k = 0;
        }
    }
}

void print ( const int i, const int m, int arr[i][m] ) {
    int j,k;
    for ( j = 1; j < i-1; j++ ){
        for ( k = 1; k < m-1; k++ ) {
            printf ( "%5d" , arr[j][k] );
        }
        putchar('\n');
    }
}


------解决方案--------------------
编译不通过?
------解决方案--------------------
谢谢啊 呵呵