程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 蛇形數組

蛇形數組

編輯:C++入門知識

//蛇形數組01
#include"stdio.h"
#include"stdlib.h"
int main()
{int aa,a,b,bb,n=0,temp=0;
int k[100][100],num;//保存數組的結果
for(int i=0;i<100;i++)
for(int j=0;j<100;j++)
k[i][j]=0;//初始化
scanf("%d",&num);
for(int j=1;j<=num;j+=2)//循環的圈數
{b=a=j/2;//上行,左列
bb=aa=num-j/2-1;//下行,右列
 for(int i=temp+1;i<=num*num;)
{n=i-temp;
 if(n<=1*(aa-a)) for(int f=b;f<bb;f++){k[a][f]=i;i++;}//以下幾行,嚴格按照蛇形數組的順序遞增的
 else if(n<=2*(aa-a)) for(int f=a;f<=aa;f++) {k[f][bb]=i;i++;}
 else if(n<=3*(aa-a)) for(int f=bb-1;f>b;f--) {k[aa][f]=i; i++;}
 else if(n<=4*(aa-a)) for(int f=aa;f>a;f--) {k[f][b]=i; i++;}
 else if(aa==a&&bb==b){ k[aa][bb]=i++;
 //break;
 }//這個是是num為奇數時的情況
  else break;

}
//temp=temp+num*(num-j+1)-4;
temp=temp+(num-j)*4; //每一圈結束的數字
}
for(int i=0;i<num;i++)
{for(int j=0;j<num;j++)
printf("%-4d",k[i][j]);
printf("\n");
}
system("pause");}

 

\

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved