//创建二维数组 arr[][],将二维数组中所有元素的和输出
int [][]arr= {{7,8,9},{44,22,33},{41,25,68,78}};//建立arr的二维数组,初始化大小并赋值
int sum=0; //声明变量sum
for(int[] n:arr){ //用foreach遍历数组
for(int m:n){ //再定义一个m ,将arr中的值通过n赋值给m,不可以直接输出n
System.out.print(m+" ");//通过遍历输出数组中的数
sum += m; //sun求和,将数组中的数全部相加
}
System.out.println();
}
System.out.println("所有元素的和="+sum); //输出结果
// 对比 用for循环遍历
for(int n=0;n<arr.length;n++){
for(int m=0;m<arr[n].length;m++){ //[n]一定要写,将n的长度定义给m,不然不规则的二维数组输出的是几乘几的数组,数字会丢失
System.out.print(arr[n][m]+" ");
}
System.out.println();
}
//对矩阵进行转置运算
public class ArrayRowColumnSwap { //创建ArryRowColumnSwap类, 不建同名的也可以
public static void main(String[] args) {
int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}}; //创建二维数组
System.out.println("转置前的的矩阵是:");
printArray(arr); // 调用打印矩阵的静态方法 , 输出二维数组
int arr2[][]=new int[arr.length][arr.length];
for (int i=0;i<arr.length;i++){ //调整数组行列数据
for(int j=0;j<arr[i].length;j++){
arr2[j][i]=arr[i][j];
}
}
System.out.println("转置后的矩阵是:");
printArray(arr2); //再次直接调用打印矩阵的静态方法,输出二维数组
}
private static void printArray(int[][]arr){ //定义一个打印矩阵的静态方法
for (int i=0;i<arr.length;i++){ //遍历数组
for(int j=0;j<arr.length;j++){
System.out.print(arr[i][j]+" "); //输出数组元素
}
System.out.println();
}
//通过遍历数组 对矩阵进行转置运算
int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}}; //创建二维数组
System.out.println("转置前的的矩阵是:");
for(int[] n:arr){ //遍历数组
for(int m:n){
System.out.print(m+" "); //输出数组
}
System.out.println();
}
int arr2[][]=new int[arr.length][arr.length];
for (int i=0;i<arr.length;i++){ //调整数组行列数据
for(int j=0;j<arr[i].length;j++){
arr2[j][i]=arr[i][j];
}
}
System.out.println("转置后的矩阵是:");
for(int[] h:arr2){ //再次遍历数组
for(int hh:h)
System.out.print(hh+" ");
System.out.println();
}
//输出九宫格
int arr[][]=new int[3][3]; //创建一个三阶方阵
int a=2; //第3行的行下标
int b=3/2; //第2列的列下标
for(int i=1;i<=9;i++){ //给数组赋值
arr[a++][b++]=i;
if(i%3==0){ //如果i是3的倍数
a=a-2;
b=b-1;
}else{ //如果i不是3的倍数
a=a%3;
b=b%3;
}
}
System.out.println("输出九宫格:");
for(int i=0;i<3;i++){ //遍历输出九宫格
for(int j=0;j<3;j++){
System.out.print(arr[i][j]+" ");
}
System.out.print("
");
}