预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共60页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
螺旋矩阵算法对比(完整版)实用资料(可以直接使用,可编辑完整版实用资料,欢迎下载)VisualC++技术交流汇《螺旋矩阵》群号:1、927821472、874231913、1262095221、我早期写的螺旋矩阵#include<stdio.h>#include<stdlib.h>#include<math.h>voidmain(){intNum,Count[20]={0},k=1,i,Sum,j,Member[10][10]={0},Mod=3,Line;intRow=0,Column=-1,f,x,y,Value=0;printf("请输入一个不大于10的数:");scanf("%d",&Num);f=Num;Sum=(Num-1)*2+1;Count[0]=Num;do{Num--;for(i=0;i<2;i++)Count[k++]=Num;}while(Num>1);for(i=0;i<Sum;i++){Line=++Mod%4;for(j=0;j<Count[i];j++){Value++;switch(Line){case0:Column++;Member[Row][Column]=Value;break;case1:Row++;Member[Row][Column]=Value;break;case2:Column--;Member[Row][Column]=Value;break;case3:Row--;Member[Row][Column]=Value;break;default:break;}}}for(x=0;x<f;x++){for(y=0;y<f;y++)printf("%d\t",Member[x][y]);printf("\n");}}2、网上普遍的螺旋矩阵#include<stdio.h>#defineN8main(){inti,j,n=1,a[N][N];for(i=0;i<=N/2;i++){for(j=i;j<N-i;j++)a[i][j]=n++;for(j=i+1;j<N-i;j++)a[j][N-i-1]=n++;for(j=N-i-2;j>i;j--)a[N-i-1][j]=n++;for(j=N-i-1;j>i;j--)a[j][i]=n++;}for(i=0;i<N;i++){printf("\n\n");for(j=0;j<N;j++)printf("%5d",a[i][j]);}}3、██刮開<85220214@qq>的螺旋矩阵//luoxuanjuzheng.cpp:Definestheentrypointfortheconsoleapplication.//#include<stdafx.h>#include<iostream>#include<stdio.h>#defineLength11//改变这里的值来改变矩阵的大小注意:要多出两列两行0方便写算法usingnamespacestd;typedefstructelement{intdata;intfangxiang;//东1南2西3北0;boolisfill;//记录是否已被填数用于确定转弯方向introw;intcol;};intiShuzhi=1;intmain(intargc,char*argv[]){voiddisplay(elementa[][Length]);voidinit(elementa[][Length]);elementfillnext(elementa[][Length],elementx);//填充下个元素elementa[Length][Length],x;init(a);inti=0;x=fillnext(a,a[1][1]);while(i<((Length-2)*(Length-2))-2)//调用函数的次数(n*n-2)次因为上面已经调用一次{x=fillnext(a,x);i++;}display(a);system