记录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;
}

猜你喜欢

转载自www.cnblogs.com/zhuimingzhenbai/p/12152050.html
今日推荐