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

Posted zhuimingzhenbai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录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("
");//控制换行
     }
return 0;
}

以上是关于记录1---数字旋转方阵的主要内容,如果未能解决你的问题,请参考以下文章

LQ0239 方阵旋转代码填空

双转向旋转方阵递归设计

刷题记录-剑指offer11:旋转数组的最小数字

P5731 深基5.习6蛇形方阵

对一个方阵转置,就是把原来的行号变列号,原来的列号变行号

处理屏幕旋转上的片段重复(带有示例代码)