1 public class arr1 { 2 3 4 public static void main(String[] args) { 5 // 创建二维数组arr[][],输出二维数组所有元素的和。 6 7 int arr[][]={{1,3,5,7,9},{21,23,25,27,29}, 8 {12,14,16,18},{32,34,36,38}}; 9 int sum=0; 10 System.out.println("二维数组遍历"); 11 // for循环 遍历 求和 12 for(int i=0;i<arr.length;i++){ 13 for(int j=0;j<arr[i].length;j++){ 14 sum+=arr[i][j]; 15 System.out.print(arr[i][j]+" "); 16 }System.out.println(); 17 }System.out.println("二维数组所有元素的和="+sum); 18 //foreach 遍历 求和 19 /*for(int [] n:arr){ 20 for(int ar:n){ 21 System.out.print(ar+" "); 22 sum+=ar; 23 } 24 System.out.println(); 25 }System.out.println("二维数组所有元素的和="+sum);*/ 26 } 27 }
二,转置运算
1 public class arr2 { 2 3 4 public static void main(String[] args) { 5 /* 对矩阵进行转置运算 6 以左上到右下的斜线为轴 7 轴上数字不变 左下角的数反转到右上角 8 同理右上角的数转到左下角 对称旋转 转置运算完成*/ 9 10 //第一步 建立二维数组 11 int arr1[][]=new int[][]{{2,1,4,5},{6,4,2,1}, 12 {9,8,7,6},{4,6,8,1}}; 13 System.out.println("转置前的矩阵是:"); 14 printArray(arr1);//一句话输出矩阵二维数组 15 16 17 //第二步 建立第二个二维数组空间 把上一个二维数组长度套入 18 int arr2[][]=new int[arr1.length][arr1.length]; 19 20 //第三步 for循环完成索引 21 for(int i=0;i<arr1.length;i++){ 22 for(int j=0;j<arr1[i].length;j++){ 23 //二维数组 arr1赋值给空二维数组 arr2?? 24 arr2[j][i]=arr1[i][j]; 25 } 26 } 27 System.out.println("转职后的矩阵是: "); 28 printArray(arr2); //一句话输出矩阵二维数组 29 } 30 private static void printArray(int[][] arr1) 31 //??? 怎么出现 是什么 为什么出现 出现什么用 32 { 33 //第四步 建立索引 遍历输出 赋值后的二维数组arr2 34 for(int i=0;i<arr1.length;i++){ 35 for(int j=0;j<arr1[i].length;j++){ 36 System.out.print(arr1[i][j]+" "); 37 }System.out.println(); 38 } 39 } 40 41 }
三,九宫格
1 public class NineTable { 2 3 /* 4 * 输出九宫格 5 */ 6 public static void main(String[] args) { 7 // 8 int arr[][]=new int[3][3]; 9 int a =2; 10 int b =3/2; 11 // 为什么是3/2 ? 12 for(int i=1;i<=9;i++){ 13 arr[a++][b++]=i; 14 if(i%3==0){ 15 a=a-2; 16 b=b-1; //为什么? 17 } 18 else{ 19 a=a%3; 20 b=b%3; 21 } 22 }System.out.println("输出九宫格:"); 23 for(int i=0;i<3;i++){ 24 for(int j=0;j<3;j++){ 25 System.out.print(arr[i][j]+" "); 26 }System.out.print(" "); 27 } 28 } 29 30 }