回 帖 发 新 帖 刷新版面

主题:[原创]顺时针由外层螺旋遍历一个矩阵

在回贴时做的,觉得写的蛮短的[em12]
1 |2 |3 |4 
----------
12|13|14|5
----------
11|16|15|6
----------
10|9 |8 |7

[code]
#define N 4
void
todo(int element)
{
    fprintf(stdout,"%d\n",element);
    return;
}

int
main(void)
{
    int arr[N][N]={
         1,2,3,4,12,13,14,5,11,16,15,6,10,9,8,7
    };
    int i,r,c;
    for(i=0;i<(N+1)/2;++i){
        for(r=i,c=i;c<N-i;)todo(arr[r][c++]);
        for(--c,++r;r<N-i;)todo(arr[r++][c]);
        for(--r,--c;c>=i;)todo(arr[r][c--]);
        for(++c,--r;r>=i+1;)todo(arr[r--][c]);
    }
    return 0; 
}
[/code]

回复列表 (共1个回复)

沙发

这个算法有意思,在C语言中有一个相关的程序,要求打印出这个矩阵。

我来回复

您尚未登录,请登录后再回复。点此登录或注册