对输入的指定数组规模做一个螺旋型的数字输出:
假设输入3,输出如下:
1 2 3
8 9 4
7 6 5
按照这种顺序进行。
实现代码如下:
1 #include
2 #include
3 using namespace std;
4
5 void inputGrid(int n,int *m)
6 {//n表示规模,m为二维数组指针
7 int row=0,line=0,flag=0;//row,line表示第几次行处理或列处理;
8 int i=0,j=-1;
9 for(int num=1;num<=n*n;)
10 {
11 if(!flag)
12 {
13 //行处理
14 int addnum;
15 if(row%2==0)addnum=1;//往前走
16 else addnum=-1;//往回走
17 int num_row=n-row;
18 while(num_row)
19 {//将本行剩余空白列全部填满
20 num_row--;
21 j+=addnum;
22 *(m+n*i+j)=num;
23 num++;
24 }