大一無聊的時候敲的一個程序,那時候敲了一順時針的,現在無聊,把逆時針的也敲了出來。
順時針螺旋方陣
#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"); } }
其實,只要順時針的弄出來了,逆時針也就很容易了。
本文出自 “淡定的dreamer” 博客,請務必保留此出處http://idiotxl1020.blog.51cto.com/6419277/1288617