博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逆向输出回环数组
阅读量:6533 次
发布时间:2019-06-24

本文共 1323 字,大约阅读时间需要 4 分钟。

题目来源:

给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内逆时针顺序遍历整个数组。如图所示:

663847-20170719222740474-1922219648.png

输出

按遍历顺序输出每个整数。每个整数占一行。

样例输入

1   2   3   45   6   7   89   10  11  12

样例输出

159101112843267

PHP实现

$a = [    [1,2,3,4],    [5,6,7,8],    [9,10,11,12]];$row = count($a);$col = count($a[0]);$i=0;$j=0;$count = $row * $col;while ($count > 0){    //打印最左边一列    for($k=1;$k<$row; $k++){        $count--;echo $a[$i][$j] .PHP_EOL;$i++;    }    //打印最下边一行    for($k=1;$k<$col; $k++){        $count--;echo $a[$i][$j].PHP_EOL;$j++;    }    //打印最右边一列    for($k=1;$k<$row; $k++){        $count--;echo $a[$i][$j].PHP_EOL;$i--;    }    //打印最上边一行    for($k=1;$k<$col; $k++){        $count--;echo $a[$i][$j].PHP_EOL;$j--;    }    $row-=2;//走完一圈,行数减2    $col-=2;//走完一圈,列数减2    $i++;//最外一圈不用再次输出    $j++;//最外一圈不用再次输出    if($row == 1){        for($k=0;$k<$col; $k++){            $count--;echo $a[$i][$j].PHP_EOL;$j++;        }    }elseif($col == 1){        for($k=0;$k<$row; $k++){            $count--;echo $a[$i][$j].PHP_EOL;$i++;        }    }}

可以调整代码实现原题目里的示例顺序输出。

C语言实现

#include 
#define maxN 101int main(int argc, char *argv[]){ int row,col,i,j,k; int a[maxN][maxN]; int count; printf("请输入行数 列数:\n"); scanf("%d%d",&row,&col); printf("请输入%d*%d矩阵:\n", row, col); for(i=0;i
0) { for(k=1;k

663847-20170719223915083-150756005.png

参考:

转载地址:http://xwzdo.baihongyu.com/

你可能感兴趣的文章
linux 软硬链接
查看>>
spark学习10(win下利用Intellij IDEA搭建spark开发环境)
查看>>
HDU 1087 Super Jumping! Jumping! Jumping! 最长递增子序列(求可能的递增序列的和的最大值) *...
查看>>
more
查看>>
html初学
查看>>
第五次实验
查看>>
2012年7月2日
查看>>
中国移动与苹果联姻 三星在华霸主地位或遭取代
查看>>
解决 window server2008 r2 没有注册Ofiice组件的方法
查看>>
5 Maven生命周期和插件
查看>>
BZOJ-1833-[ZJOI2010]count 数字计数(数位dp)
查看>>
共享内存示例代码如下:
查看>>
Python装饰器
查看>>
完美解决gradle下载慢的问题
查看>>
CI中REST URL含有中文怎么处理(报错:The URI you submitted has disallowed characters)
查看>>
Java面向对象编程
查看>>
iOS开发中的内存分配与分区
查看>>
ORA-22813 ORA-06512
查看>>
面向Android的Tesseract工具
查看>>
使用vxsim(一)
查看>>