黑马程序员技术交流社区

标题: 求组学习中遇到的难题 [打印本页]

作者: 叨叨1    时间: 2017-3-5 23:30
标题: 求组学习中遇到的难题
3.输入一个矩阵,按照从外向里逆时针顺序依次打印出每一个数字。(12分)
例如:
1        2        3        4
5        6        7        8
9        10        11        12
13        14        15        16
逆时针依次打印:4,3,2,1,5,9,13,14,15,16,12,8,7,6,10,11

这个问题怎么破

作者: lvshen9    时间: 2017-3-6 06:51
输入的数存入二元数组,按指定角标打印出来试试

作者: 小T    时间: 2017-3-7 02:53
可以用循环的方式啊:总是横着一次 竖着一次一直循环的,方向就看索引,是第一个就慢加是最后一个就慢慢减啊,然后就是如何判断是否到头转向的问题,这个就把数组用一个新数组来装(这样就能保持原来的数组),然后每次打印一个数后把他重新赋值为一个新的数(这个数不能是原来里面有的)这样只要遇到这个特定的数就代表到头了需要转向了《这是数组可见的情况下,如果不可见就用另一种  [如果把打印一个新的一排或一列看做一组,从每组的个数就能看出规律比如你给的这个数组每次打印的个数为  4  3  3  2  2  1  1  0,到0就代表结束了第一次就是宽(高)之后减小1个数,连续俩次,在减小1个数在连续打印俩组依次循环到0就完了,这个输出的个数用个tag初始为1打印完一组就自减,到0就重新赋值为2就行了]》
以上就是我短时间想到的方法了,我是门外汉可能想到的方法比较笨,多包涵下!

作者: 小T    时间: 2017-3-7 03:08
小T 发表于 2017-3-7 02:53
可以用循环的方式啊:总是横着一次 竖着一次一直循环的,方向就看索引,是第一个就慢加是最后一个就慢慢减 ...

还有这个索引改变的问题,上面是你指定了从哪个角开始,如果是随机角开始的话(看规律,其实方向改变是固定的那索引改变就一定有规律下面从索引来分析
11>21>31>41
41>42>43>44
44>34>24>14
14>13>12>11   
这就是所有情况能看出第一和第三种,当索引都是最大或最小时就是改变第一个索引。
而第二和第四则是改变第二个索引。
其实画图更容易理解你试试就知道了,如果需要顺时针输出那这个就刚好相反。
自加还是自减这个就更好判断啦)
话多别嫌弃哈,从小语文比较差!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2