输入2个整数m和n,其中m小于24,n小于20
输出m行n列的数,其中数值是从1到m*n,排列方式是蚊香式:第一列从上到下,一旦到头(到边界或前方已经有数)就直角左转继续。
伪代码:
先创建m*n的二维数组,然后写个大循环,k从1到m*n
在循环外面定义一个代表方向的变量dirc,0表示向下,1表示向右,2表示向上,3表示向左,一开始的值是0
循环一开始将a[i][j]=k++
然后判断dirc和i,j的关系,如果dirc向下并且已经到了最下,改方向为右(dirc++),或者向右并且到了最右,或者向上到了最上,或者向左到了最左,都执行dirc++
判断的时候不能只判断是否数组越界,要看继续向前的值是不是0,非0代表已经有值需要转弯
如果dirc的值是4,让它归0
判断好方向后开始行走,判断dirc的值(switch),如果是0,i++,如果是1,j++,如果是2,i--,如果是3,j--
然后就这样一直循环m*n次就把m*n的格子填满了
你小子,老邹刚发的作业你就来问了
以后你每周五都来问,我就跟着你找答案了