如何实现逆时针打印二维数组的功能呢?

2026-04-03 05:341阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计404个文字,预计阅读时间需要2分钟。

如何实现逆时针打印二维数组的功能呢?

逆时针打印二维数组,结果如下:[7, 8, 9, 10, 11, 12, 13, 4][6, 15, 16, 17, 18, 19, 20, 5][5, 14, 23, 24, 25, 26, 27, 6][4, 13, 22, 31, 32, 33, 28, 7][3, 12, 21, 30, 29, 34, 27, 8][2, 11, 20, 19, 18, 35, 26, 9][1, 10, 17, 16, 15, 36, 25, 10]

逆时针打印二维数组

$a = array(array(0,1,2,3,4,5,6,7),array(27,28,29,30,31,32,33,8),array(26,47,48,49,50,51,34,9),array(25,46,59,60,61,52,35,10),array(24,45,58,63,62,53,36,11),array(23,44,57,56,55,54,37,12),array(22,43,42,41,40,39,38,13),array(21,20,19,18,17,16,15,14)); ReluoTwoArr($a); function ReluoTwoArr($a){ $len = count($a); //行列式的行数 $col = count($a[0]);//行列式的列数 $mid = $len<$col?$len:$col;//取行和列的最小值 $hang=0;//用于记录已打印的行数 $lie=0;//用于记录已打印的列数 $flag1=0;//用于记录行标或列标 $flag2=0;//用于记录行标或列标 $i=0; $sum=0; for($start=0;$start<=$mid/2;$start++){ //1.上到下打印列 if($lie<$col){ for($i=$start;$i<$len-$start;$i++){ echo $a[$i][$start]." "; $sum++; } $flag1=$i-1; $lie++;//打印的行数加1 } //2.从左到右打印行 if($hang<$len){ for($i=$start+1;$i<$col-$start;$i++){ echo $a[$flag1][$i]." "; $sum++; } $flag2=$i-1; $hang++; //打印的列数加1 } //3.从下到上打印列 if($lie<$col){ for($i=$flag1-1;$i>=$start;$i--){ echo $a[$i][$flag2]." "; $sum++; } $flag1=$i; $lie++;//打印的行数加1 } //4.从右到左打印行 if($hang<$len){ for($i=$flag2-1;$i>$start;$i--){ echo $a[$start][$i]." "; $sum++; } $hang++; //打印的列数加1 } echo "一共打印了 "+$sum+" 个元素"; } }

如何实现逆时针打印二维数组的功能呢?

本文共计404个文字,预计阅读时间需要2分钟。

如何实现逆时针打印二维数组的功能呢?

逆时针打印二维数组,结果如下:[7, 8, 9, 10, 11, 12, 13, 4][6, 15, 16, 17, 18, 19, 20, 5][5, 14, 23, 24, 25, 26, 27, 6][4, 13, 22, 31, 32, 33, 28, 7][3, 12, 21, 30, 29, 34, 27, 8][2, 11, 20, 19, 18, 35, 26, 9][1, 10, 17, 16, 15, 36, 25, 10]

逆时针打印二维数组

$a = array(array(0,1,2,3,4,5,6,7),array(27,28,29,30,31,32,33,8),array(26,47,48,49,50,51,34,9),array(25,46,59,60,61,52,35,10),array(24,45,58,63,62,53,36,11),array(23,44,57,56,55,54,37,12),array(22,43,42,41,40,39,38,13),array(21,20,19,18,17,16,15,14)); ReluoTwoArr($a); function ReluoTwoArr($a){ $len = count($a); //行列式的行数 $col = count($a[0]);//行列式的列数 $mid = $len<$col?$len:$col;//取行和列的最小值 $hang=0;//用于记录已打印的行数 $lie=0;//用于记录已打印的列数 $flag1=0;//用于记录行标或列标 $flag2=0;//用于记录行标或列标 $i=0; $sum=0; for($start=0;$start<=$mid/2;$start++){ //1.上到下打印列 if($lie<$col){ for($i=$start;$i<$len-$start;$i++){ echo $a[$i][$start]." "; $sum++; } $flag1=$i-1; $lie++;//打印的行数加1 } //2.从左到右打印行 if($hang<$len){ for($i=$start+1;$i<$col-$start;$i++){ echo $a[$flag1][$i]." "; $sum++; } $flag2=$i-1; $hang++; //打印的列数加1 } //3.从下到上打印列 if($lie<$col){ for($i=$flag1-1;$i>=$start;$i--){ echo $a[$i][$flag2]." "; $sum++; } $flag1=$i; $lie++;//打印的行数加1 } //4.从右到左打印行 if($hang<$len){ for($i=$flag2-1;$i>$start;$i--){ echo $a[$start][$i]." "; $sum++; } $hang++; //打印的列数加1 } echo "一共打印了 "+$sum+" 个元素"; } }

如何实现逆时针打印二维数组的功能呢?