打印蛇形矩阵

#include<stdio.h>
int p[10][10];
int n;
int main()
{
 int cnt,i,x,y,j;
     while(scanf("%d",&n)!=EOF)
  {
   cnt=0;
   for(i=1;i<=n;i++)
   {
    p[1][i]=++cnt;
   }
         x=1;y=n;
   int temp=n-1;
   for(j=1;j<=n-1;j++)
   {
    for(i=1;i<=temp;i++)
    {
     x++;
     p[x][y]=++cnt;
    }
    for(i=1;i<=temp;i++)
    {
     y--;
     p[x][y]=++cnt;
    }
    temp-=1;
    for(i=1;i<=temp;i++)
    {
     x--;
     p[x][y]=++cnt;
    }
    for(i=1;i<=temp;i++)
    {
     y++;
     p[x][y]=++cnt;
    }
    temp-=1;
   }
   for(i=1;i<=n;i++)
   {
    for(j=1;j<=n;j++)
    {
     if(j==n) printf("%3d\n",p[i][j]);
     else printf("%3d",p[i][j]);
    }
   }
  }
 return 0;
}

posted @ 2013-09-07 21:20  forevermemory  阅读(326)  评论(0编辑  收藏  举报