首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-31 
分享一个螺旋矩阵的实现C/C++ code#include stdio.hvoid csh ( const int i, const int m, int arr[i][m

分享一个螺旋矩阵的实现

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');    }}


[解决办法]
编译不通过?
[解决办法]
谢谢啊 呵呵

热点排行