之字型打印二维数组

package com.dl.numprint;


public class ZPrint {

   public static void zPrint(int[][] array)
   {
  int rr=0; //纵向移动横坐标
  int rc=0;//纵向移动纵坐标
  int cr=0;//横向移动横坐标
  int cc=0;//横向移动纵坐标
  boolean flag=false;// 从上向下打印还是从下向上打印
  if(array==null || array.length==0 ||array[0].length==0)
  return;
  int rowNum=array.length-1;
  int colNum=array[0].length-1;
  while(cr!=rowNum+1)
  {   printLine(array,rr,rc,cr,cc,flag);
      rc=rr==rowNum?rc+1:rc;
  rr=rr==rowNum?rr:rr+1;//特别注意rc 和 rr的赋值顺序,若反过来则出错
      
      cr=cc==colNum?cr+1:cr;
      cc=cc==colNum?cc:cc+1;
  
      flag=!flag;
    
  }
 
   }
   
   public static void printLine(int[][] array,int rr,int rc,int cr,int cc,boolean flag)
   {
  if(flag)
  {
while(cr!=rr+1)
{
System.out.print(array[cr++][cc--]+" ");
}
  }
  if(!flag)
  {
 while(rc!=cc+1)
 {
 System.out.print(array[rr--][rc++]+" ");
 }
  }
   }
   
   public static void main(String[] args) {
  int[][] matrix = { {1}};
//System.out.print("LENGTH:"+matrix.length);
zPrint(matrix);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值