我的螺旋矩阵实现
来源:互联网 发布:信息系统与软件联系 编辑:程序博客网 时间:2024/06/08 06:06
#include <stdio.h>#define N 5 //矩阵长宽#define DEBUGint main(){int array[N][N];int x=0,y=0;int maxx=N-1,maxy=N-1,minx=0,miny=0;int number=1; int now=1; //方向 1.down 2.right 3.up 4.leftint flag=1; //判断顺时针还是逆时针int f=0; //判断是否移动过printf("1.顺时针 2.逆时针\n");scanf("%d",&flag);if (flag==1)now=2;else if (flag==2)now=1;while(maxx!=minx && maxy!=miny && maxx>=0 && minx >=0 && maxy >=0 && miny >= 0) {while(x<maxx && now==1) {//downarray[x++][y]=number;number++;f=1;}if (flag==1 && f==1) {now=4;maxy--; //顺时针向下移动后,能到达的最大行减小一f=0;} else if (flag==2) {now=2; //逆时针向下移动后,能到达的最小行加一miny++;}while(y<maxy && now==2) {//rightarray[x][y++]=number;number++;f=1;}if (flag==1 && f==1) {now=1;minx++;f=0;}else if (flag==2) {now=3;maxx--;}while(x>minx && now==3) {//uparray[x--][y]=number;number++;f=1;}if (flag==1 && f==1) {now=2;miny++;f=0;}else if (flag==2) {now=4; maxy--;}while(y>miny && now==4) {//leftarray[x][y--]=number;number++;f=1;}if (flag==1 && f==1) {now=3;maxx--;f=0;}else if (flag==2) {now=1;minx++;}}array[x][y]=number++;if (flag==1)array[minx][miny]=number++;array[maxx][maxy]=number++;#ifdef DEBUGint i,j;for (i=0;i<N;i++) {for (j=0;j<N;j++) {printf("%d ",array[i][j]);}printf("\n");}#endifreturn 0;}
- 我的螺旋矩阵实现
- 螺旋矩阵的实现
- 我的螺旋矩阵解法!
- 螺旋矩阵--我的实现方法
- 螺旋矩阵的Java实现
- 螺旋矩阵的C实现
- 简单的实现螺旋矩阵
- 简单的螺旋矩阵的实现
- 蛇形矩阵,回环矩阵,数字螺旋矩阵的PHP实现
- n*n螺旋矩阵的实现
- 001螺旋矩阵的java实现
- 螺旋矩阵的两种JAVA实现
- python实现螺旋矩阵的填充
- 矩阵的螺旋排列 Python实现
- 螺旋矩阵(c实现)
- 螺旋矩阵编程实现
- java 实现螺旋矩阵
- java实现螺旋矩阵
- 删除字符串中两个字符中的字符串(最近原则且非贪婪模式)
- 关于mongoDb介绍及使用一
- 在IIS上发布ASP.NET网站 几种方式
- 没心没肺的忧伤感情日志:也许,你并不知道我也在等你
- java中String.replaceAll()的使用
- 我的螺旋矩阵实现
- android widget
- 创建自己的log文件
- 移动表到别的文件组,考虑了架构的问题
- asp.net打开office文件检索COM 类工厂中CLSID~组件加载失败(解决方案)
- 如何添加透明幕墙
- ios 关于推送发布的一些流程
- SQL SERVER 执行计划各字段注释
- J2EE系统的简单权限管理