输入任意阶数,即可打对应印蛇形矩阵。原理是根据蛇形矩阵的性质,运用矩阵行列对下个数字打印的方向进行判别,从而打印出对应的数字。详情请看如下参考代码。
参考代码:
#include<stdio.h>
int n;
int i = 0; //行
int j = 0; //列
int k = 1; //运动方向. k =1 →; k=2 ↙; k=3 ↓ ;k=4 ↗
int data[100][100];
int main()
{
printf("输入矩阵阶数:\n");
scanf_s("%d", &n);
//------------------判断方向
while (i != n - 1 || j != n - 1)
{
if (k == 1)
{
data[i][j + 1] = data[i][j] + 1;
j++;
if (i == n - 1)
{
k = 4;
}
else
{
k = 2;
}
}
else if (k == 2)
{
data[i + 1][j - 1] = data[i][j] + 1;
j--;
i++;
if (j == 0 && i != n - 1)
{
k = 3;
}
else if (i == n - 1)
{
k = 1;
}
else
{
k = 2;
}
}
else if (k == 3)
{
data[i + 1][j] = data[i][j] + 1;