蛇形矩阵
eg:
#include<iostream>
#include<iomanip>
using namespace std;
#define N 10
void Output(int a[N][N], int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << setw(4) << a[i][j];
}
cout << endl;
}
}
void HX(int a[N][N], int n)
{
int i = 0, j = 0;
int flag = 0;
for (int v = 1; v <= 49; v++)
{
a[i][j] = v;
switch (flag)
{
case 0:
if (i == 0 && j < n - 1)
j++; //向东
else
i++;
flag = 1;
break;
case 1:
i++; //向西南
j--;
if (i == n -1 || j == 0)
flag = 2;
break;
case 2:
if (j == 0 && i < n - 1)
i++; //向南
else
j++;
flag = 3;
break;
case 3:
i--; //向东北
j++;
if (j == n -1 || i == 0)
flag = 0;
break;
}
}
}
int main()
{
int n = 7;
int a[N][N] = { 0 };
HX(a, n);
Output(a, n);
}
一定要考虑过了对角线后的情况!!!!!!