输出蛇形数组

2014-11-24 00:33:31 · 作者: · 浏览: 3
前几天做小米的笔试题,遇到一个蛇形数组的题目,让你 编程输出如下类似的蛇形矩阵
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
#include  
using namespace std;  
#define N 15  
  
int mat[N][N];  
int all;  
void getLayer(int x,int y) //根据下标的规律,一层一层输出  
{  
    int a=y,b=x;  
    mat[x][y]=all++;  
    if(x>a)  
    {  
        while(x!=a)  
        {  
            x--;  
            y++;  
            mat[x][y]=all++;  
        }  
    }  
    else  
    {  
        while(x!=a)  
        {  
            x++;  
            y--;  
            mat[x][y]=all++;  
        }  
    }  
}  
void changeLayer(int x,int y) //每次输出一层,则转下一层  
{  
    while(x<=N-1&&y<=N-1)  
    {  
        if(x