📄 snakematrix.cpp
字号:
#include <iostream.h>
#define N 8
#define TOEAST 1
#define TOWEST 2
#define TOSOUTH 3
#define TONORTH 4
void main(void)
{
int Counter = 1;
int LeftRight,UpDown;
int Flag = TOWEST;
int Matrix[N][N] = {0};
//确定本型矩阵的首个单元格
LeftRight = N / 2 - 1;
UpDown = N / 2 - 1;
while(Counter <= N*N)
{
//单元格付值
Matrix[UpDown][LeftRight] = Counter++;
switch(Flag)
{
case TOEAST:
if(Matrix[UpDown-1][LeftRight] == 0) //转向条件
{
UpDown--;
Flag = TONORTH;
}
else LeftRight++;
break;
case TONORTH:
if(Matrix[UpDown][LeftRight-1] == 0) //转向条件
{
LeftRight--;
Flag = TOWEST;
}
else UpDown--;
break;
case TOWEST:
if(Matrix[UpDown+1][LeftRight] == 0) //转向条件
{
UpDown++;
Flag = TOSOUTH;
}
else LeftRight--;
break;
case TOSOUTH:
if(Matrix[UpDown][LeftRight+1] == 0) //转向条件
{
LeftRight++;
Flag = TOEAST;
}
else UpDown++;
break;
}
}
//=====================输出矩阵=======================
cout<<"Now, We have the result below:"<<endl;
for(UpDown = 0;UpDown < N;UpDown++)
{
for(LeftRight = 0;LeftRight < N;LeftRight++)
{
cout<<Matrix[UpDown][LeftRight]<<'\t';
}
cout<<endl;
cout<<endl;
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -