分享一个螺旋矩阵的实现解决方法
分享一个螺旋矩阵的实现
------解决方案--------------------
编译不通过?
------解决方案--------------------
谢谢啊 呵呵
- 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'); } }
------解决方案--------------------
编译不通过?
------解决方案--------------------
谢谢啊 呵呵