记录1---数字旋转方阵

 

#include<stdio.h>
#include<string.h>
int main()
{
    int i,j=0,n,k,a[20][20],num=1;scanf("%d",&n);
 for(k=0;k<n/2;k++)
 {
    for(i=k;i<n-1-k;i++)
          a[i][k]=num++;
    for(i=k;i<n-1-k;i++)
        a[n-1-k][i]=num++;
    for(i=n-1-k;i>k;i--)
        a[i][n-1-k]=num++;
    for(i=n-1-k;i>k;i--)
        a[k][i]=num++;
 }
 if(n%2==1)
     a[n/2][n/2]=n*n;//n为奇数时,上面的代码会有小bug,修正
 int flag=0;
 for(i=0;i<n;i++)
     for(j=0;j<n;j++)
     {
       flag++;
       printf("%4d",a[i][j]);
       if(flag%n==0)
           printf("\n");//控制换行
     }
return 0;
}
posted @ 2020-01-05 12:45  溪风吹雨  阅读(238)  评论(0编辑  收藏  举报