/*
题目:
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
整体思路:
设函数为row;
例如:row = 4;
蛇形矩阵尾:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
对应的坐标位置为:
(0,0)(0,1)(0,2)(0,3)
(1,0)(1,1)(1,2)(1,3)
(2,0)(2,1)(2,2)(2,3)
(3,0)(3,1)(3,2)(3,3)
每次是从第1行的第row列开始是即使数组的[0][row-1]开始实现蛇形矩阵
1.蛇首先是先向下移动(行加一列不变),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到row行的时候
2.再向左移动(行不变列减一),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到0列的时候
3.再向上移动(行减一列列不变),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到0行的时候
4.最后向右移动(行不变列加一),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到row列的时候
5.然后蛇向下移动一个位置(行加一列不变),从第1步开始继续执行,共执行row次
题目:
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
整体思路:
设函数为row;
例如:row = 4;
蛇形矩阵尾:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
对应的坐标位置为:
(0,0)(0,1)(0,2)(0,3)
(1,0)(1,1)(1,2)(1,3)
(2,0)(2,1)(2,2)(2,3)
(3,0)(3,1)(3,2)(3,3)
每次是从第1行的第row列开始是即使数组的[0][row-1]开始实现蛇形矩阵
1.蛇首先是先向下移动(行加一列不变),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到row行的时候
2.再向左移动(行不变列减一),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到0列的时候
3.再向上移动(行减一列列不变),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到0行的时候
4.最后向右移动(行不变列加一),一直移动到下一个位置不为零(表示该位置被蛇的其他部分占用)或者到row列的时候
5.然后蛇向下移动一个位置(行加一列不变),从第1步开始继续执行,共执行row次
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int *a;
int row,tmp_row;
int num = 1;
int i,j;
int loc;
scanf("%d",&