螺旋矩阵算法- JAJA - JavaEye技术网站

自己写的一个螺旋矩阵的算法,感觉好笨,呵呵,还没想出好办法来,感觉肯定有个很简洁的算法来实现。

?

?

#include<stdio.h>
#include<stdlib.h>

void SpiralMatrix(int start,int n)
{
     int sm[n][n],i,j;
     i=j=0;
     memset(sm,0,sizeof(sm));
     
     int m = n -1 ;
     
     for(i=0;i<(n+1)/2;i++)
     {
        for(j=i;j<=m;j++)
        {
            sm[i][j]=start;
            start++;
        }
        for(j=i+1;j<=m;j++)
        {
            sm[j][m]=start;
            start++;
        }
        for(j=m-1;j>=i;j--)
        {
             sm[m][j]=start;
             start++;
        }
        for(j=m-1;j>i;j--)
        {
             sm[j][i]=start;
             start++;
        }
        m--;
     }
     /**
     * print matrix
     */
     for(i=0;i<n;i++)
     {
         for(j=0;j<n;j++)
         {
             printf("%3d ",sm[i][j]);
         }
         putchar('\n');
     }
     
}
int main()
{
    int n = 0;
    while(1)
    {
            printf("Enter the number,0 to quit: ");
            scanf("%d",&n);
            if(n<=0)
                break;
            else
                SpiralMatrix(1,n);                
    }
    system("pause");
    return 0;
}

?

郑重声明:资讯 【螺旋矩阵算法- JAJA - JavaEye技术网站】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——