大一无聊的时候敲的一个程序,那时候敲了一顺时针的,现在无聊,把逆时针的也敲了出来。
顺时针螺旋方阵
#include <stdio.h> //宏定义,定义螺旋矩阵的阶数,要想改变数组的阶数,只需在改变N的值即可 #define N 5 void main() { int n,i,j,m=1; int a[N][N]={0};//定义螺旋数组,并初始化 //螺旋数组的实现 for(n=0;n<=N/2;n++) { for(j=n;j<N-n;j++) a[n][j]=m++; for(i=n+1;i<N-n;i++) a[i][N-n-1]=m++; for(j=N-n-2;j>=n;j--) a[N-n-1][j]=m++; for(i=N-n-2;i>n;i--) a[i][n]=m++; } //输出螺旋数组 for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%4d",a[i][j]); printf("\n"); } }
逆时针螺旋方阵
#include <stdio.h> //宏定义,定义螺旋矩阵的阶数,要想改变数组的阶数,只需在改变N的值即可 #define N 5 void main() { int n,i,j,m=1; int a[N][N]={0};//定义螺旋数组,并初始化 //螺旋数组的实现 for(n=0;n<=N/2;n++) { for(j=n;j<N-n;j++) a[j][n]=m++; for(i=n+1;i<N-n;i++) a[N-n-1][i]=m++; for(j=N-n-2;j>=n;j--) a[j][N-n-1]=m++; for(i=N-n-2;i>n;i--) a[n][i]=m++; } //输出螺旋数组 for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%4d",a[i][j]); printf("\n"); } }
其实,只要顺时针的弄出来了,逆时针也就很容易了。