输出一个有趣的矩阵

 
// array_arrange.cpp : 定义控制台应用程序的入口点。
//
//   输入N(如3)
//   输出如下:
/*   1  3  6
     2  5  8
     4  7  9     */


#include "stdafx.h"
#include 
 
 
  
  
#include 
  
  
   
   
using namespace std;

void function(int n)
{
	int **p=new int*[n];
	for (int i=0; i != n; i++)
		p[i]=new int [n];
	p[0][0]=1 ;
	
	int temp=1;
	for (int i=1; i != n; i++)
	{
		p[i][0]=p[i-1][0]+temp;
		temp++;
	}

	temp=n;
	for (int i=1; i != n; i++)
	{
		p[n-1][i]=p[n-1][i-1]+temp;
		temp--;
	}

	int jj=0;
	for (int i=0; i != n; i++)
	{
		int k=i;
		while (k != 0)
		{
			p[k-1][jj+1]=p[k][jj]+1;
			k--;
			jj++;
		}
		jj=0;
	}

	int tt=n-1;
	for (int j=1; j != n-1; j++)
	{
		int k=j;
		while (k != n-1)//-----------(k!=n)导致了数组的越界……
		{
			p[tt-1][k+1]=p[tt][k]+1;
			tt--;
			k++;
		}
		tt=n-1;
	}

	for (int i=0; i != n; i++)
	{
		for (int j=0; j != n; j++)
			cout << setw(4) << p[i][j];
		cout << '/n';
	}

	for (int k = n; k != 0; --k)
		delete []p[k-1];
	delete []p;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int input=0;
	cout << "input the number:";
	cin >> input;
	function(input);
	system("PAUSE");
	return 0;
}

   
   

  
  
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值