先简单的介绍下题目:
题目是:输入一个2 3 4 ...为参数,请打印对应的回旋数组,如下:
input: 2
output:
1 2
4 3
input :3
output:
1 2 3
8 9 4
7 6 5
input :4
output:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
解题思路:
就假设一个人沿着这个数组按照上面的箭头方向绕圈,他的初始位置为(0,0),并赋值为1,前进一步就相应的加1,若要转弯,改变方向继续行走,并赋值。
程序代码:
void PrintCircleNumber(int num)
{
int i, j, k, dir = 0; //0表示向右, 1表示向下, 2表示向左, 3表示向上
//定义一个num*num的二维数组,并分配空间
int **arr = (int **)malloc(sizeof(int *)*num);
for (i =