1、螺旋数组简介
螺旋数组是指将给定的存储连续自然数的二维数组中的数字从最外层开始以顺时针形式输出
2、示例代码
#include <stdio.h>
#define N 6 //螺旋数组阶数
void main()
{
int h, l, num;
h = l = 0;
num = 1;
int arr[N][N] = {0};
// arr[h][l]赋值
for (int i = 0; i < N; i++) *(*(arr + h) + l++) = num++;
l = l - 1;
for (int j = 1; j < N; j++)
{
if (j % 2 == 1)
{
for (int i = 0; i < N - j; i++) *(*(arr + ++h) + l) = num++;
for (int i = 0; i < N - j; i++) *(*(arr + h) + --l) = num++;
}
else
{
for (int i = 0; i < N - j; i++) *(*(arr + --h) + l) = num++;
for (int i = 0; i < N - j; i++) *(*(arr + h) + ++l) = num++;
}
}
//输出arr
for (int h = 0, i = 1; h < N; h++)
{
for (int l = 0; l < N; l++)
{
printf("arr[%d][%d]: %d\t", h, l, arr[h][l]);
}
putchar('\n');
}
}
3、运行结果