日期:2014-05-20 浏览次数:20805 次
//刚写的,但只能转化等列的数组,调试通过比较符合你的要求 public class Zero{ /** * 将一个等列数的二维数组转换成周围有一圈零的二维数组 * @param a 待转换数组 * @return 转换后的数组 */ public int [][] toZero(int [][] a){ int [][] newArray =new int[a.length+2][a[0].length+2]; for(int first=0;first<a[0].length+2;first++){ newArray[0][first]=0; } for(int i=0;i<a.length;i++){ newArray[i+1][0]=0; for(int j=0;j<a[i].length;j++){ newArray[i+1][j+1]=a[i][j]; } newArray[i+1][a[i].length+1]=0; } return newArray; } /** * 打印数组 * @param a 待打印的数组 */ public void print(int[][] a){ for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ System.out.print(a[i][j]); }System.out.println(); } } public static void main(String [] args){ Zero z = new Zero(); //待转换的数组 int [][] array ={ {1,2,3}, {4,5,6}, {7,8,9}, }; z.print(z.toZero(array));//转换后打印 } } //打印结果: //00000 //01230 //04560 //07890 //00000
------解决方案--------------------
那个,我最先贴的那个有些问题,调试了一下,重新贴一次。
public class Test { public static void main(String[] args) { final int ROW = 3; final int COL = 3; int m = 0; int k = 0; for (int i = 0; i <= ROW + 1; i++) { for (int j = 0; j <= COL + 1; j++) { if ((i == 0) || (j == 0) || (i == ROW + 1) || (j == COL + 1)) { m = 0; } else { k++; m = k; } System.out.print(m + ((j == COL + 1) ? "\n" : " ")); } } } }