输出回型矩阵

2014-11-24 08:09:44 · 作者: · 浏览: 0

在上面向对象课程的时候,老师出了一个题目,让通过程序输出一个回型矩阵。

n=1的回型矩阵

1

n=2的回型矩阵

1 2

4 3

n=3的回型矩阵

1 2 3

8 9 4

7 6 5

n=4的回型矩阵

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

简单分析就可以发现,回型矩阵的每一圈都是先向右增加,然后向下增加,然后向左增加,然后向上增加组成的。

根据这个规律得到代码:

/*
	writen by qianshou.
	2013/12/5 17:14 pm
	study at SDNU
*/
#include
  
   
using namespace std;
int main()
{
	int n;//n表示矩阵的规模
	int i=0;//i表示行
	int j=0;//j表示列
	int m=1;//表示要填充的数据
	n=5;//输出5乘以五的矩阵
	cout<<"请输入矩阵的规模n:";
	cin>>n;
	int k=0;
	int t=n;//t是n的备份 
	//动态建立二维数组 
	int **a=new int *[t];
	for(i=0;i
   
    0) { //1,列向右递增; for(;j
    
     =t-n;j--) { a[i][j]=m; m++; } i--; //指向上一行 j++; //j回退到合适位置 //4,行向上递减; for(;i>t-n;i--) { a[i][j]=m; m++; } j++; //开始下一个循环 i++; //i回退到合适位置 n--; } //生成矩阵完成 //输出矩阵 for(i=0;i
     
      
给出一个运行的结果: