构造螺旋矩阵
2014-03-03 19:51
309 查看
// SpiralMatrix.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; //动态创建二维数组 int ** dynamic2DimensionArray(int n,int m){ int ** arr; for(int i=0;i<n;i++) { arr=(int **)malloc(sizeof(int **)*n); } for(int i=0;i<n;i++) { arr[i]=(int *)malloc(sizeof(int *)*m); } return arr; } //创建螺旋矩阵 int ** createSpiralMatrix(int n){ int ** arr=dynamic2DimensionArray(n,n); //初始化二维数组 for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ arr[i][j]=0; } } int m=1; //构建螺旋矩阵 for(int i=0;i<n/2;i++) { int j=0; for(j=i;j<n-i;j++) { arr[i][j]=m++; } for(j=i+1;j<n-i;j++) { arr[j][n-i-1]=m++; } for(j=n-i-2;j>i;j--) { arr[n-i-1][j]=m++; } for(j=n-i-1;j>i;j--) { arr[j][i]=m++; } } if(n%2==1)arr[n/2][n/2]=m++; return arr; } int _tmain(int argc, _TCHAR* argv[]) { int ** arr=createSpiralMatrix(5); for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cout<<setw(5)<<arr[i][j]<<" "; } cout<<"\n"; } return 0; }
相关文章推荐
- c语言
- python IDLE编程时遇到Python Error: Inconsistent indentation detected! 解决方法
- 设计模式笔记之虚拟工厂模式
- Eclipse快捷键大全
- hive Lateral View语法
- poj-2482-Stars in Your Window-线段树
- [跨浏览器插件开发] FireBreath打包工具WIX的使用注意
- Linux输入子系统分析(一)
- 自己在安装centos 系统时, 是使用英文安装 成功,现在系统语言为英语,如何设置为中文?
- Makefile 编译jsoncpp源码 生成静态库和共享库的例子
- 《谁是谷歌想要的人才?》读书摘抄(2)——传统谜题
- 《谁是谷歌想要的人才?》读书摘抄(2)——传统谜题
- XManager4基于gdm连接centos6.4图形界面(绝对可用)
- Python学习笔记(六)—几个标准类型内建函数
- 放大的X
- Real User Experience Insight (RUEI)安装操作手册
- 【M9】利用destructors避免泄漏资源
- Hibernate具体参数说明
- 使用easyUI的combogrid来实现模糊查询,jsp部分
- qmake 之 CONFIG 与 QT 乱谈