class Matrix2{ public static void main(String args[]) { int m[][]={{6,2,24},{-5,8,7,6},{-3,-18,-4,1,66}}; int row=0; int col=0; int row2=0; int col2=0; int max,min,sum=0; max=m[0][0]; min=m[0][0]; System.out.println("该二维数组中的最高维数为:"+m.length); System.out.println("该二维数组中的元素有:"); for(int i=0;i<m.length;i++) { for(int j=0;j<m.length;j++) System.out.println(m[i][j]+"\t"); System.out.println();
} System.out.println(); for(int i=0;i<m.length;i++) { for(int j=0;j<m[i].length;j++) { sum+=m[i][j]; if(m[i][j]>max) { max=m[i][j]; row=i; col=j; } if(m[i][j]<min) { min=m[i][j];
row2=i; col2=j; }
}
} System.out.println("所有元素的和为:"+sum); System.out.println("最大的元素的值为:"+max); System.out.println("该元素的位置在:"+row+"行,"+col+"列"); System.out.println("最小的元素值为:"+min); System.out.println("该元素的位置在:"+row2+"行,"+col2+"列"); }
}
教材上的这段程序似懂非懂的,哪位大侠能逐行解释下啊。谢谢啊O(∩_∩)O~
} System.out.println(); for(int i=0;i<m.length;i++) { for(int j=0;j<m[i].length;j++) { sum+=m[i][j]; if(m[i][j]>max) { max=m[i][j]; row=i; col=j; } if(m[i][j]<min) { min=m[i][j];
row2=i; col2=j; }
}
} System.out.println("所有元素的和为:"+sum); System.out.println("最大的元素的值为:"+max); System.out.println("该元素的位置在:"+row+"行,"+col+"列"); System.out.println("最小的元素值为:"+min); System.out.println("该元素的位置在:"+row2+"行,"+col2+"列"); }
}
教材上的这段程序似懂非懂的,哪位大侠能逐行解释下啊。谢谢啊O(∩_∩)O~
第17行for(int j=0;j <m.length;j++) 可能是for(int j=0;j <m[i].length;j++)
class Matrix2 { public static void main(String args[]) { int m[][]={{6,2,24},{-5,8,7,6},{-3,-18,-4,1,66}}; //初始化一个二维数组 int row=0; //用来标记最大值的在二维数组中的行号
int col=0; //用来标记最大值的在二维数组中的列号 int row2=0; //用来标记最小值的在二维数组中的行号 int col2=0; //用来标记最小值的在二维数组中的列号 int max,min,sum=0; max=m[0][0]; min=m[0][0]; System.out.println("该二维数组中的最高维数为:"+m.length); System.out.println("该二维数组中的元素有:"); for(int i=0;i <m.length;i++) //循环打印出二维数组中的每个值 { for(int j=0;j <m.length;j++) //改成j<m[i].length System.out.println(m[i][j]+"\t"); System.out.println();
} System.out.println(); for(int i=0;i <m.length;i++) { for(int j=0;j <m[i].length;j++) { sum+=m[i][j]; //数组中所有数的和 if(m[i][j]>max) //循环找出数组中最大值 { max=m[i][j]; row=i; col=j; } if(m[i][j] <min) //循环找出数组中最小值 { min=m[i][j];
row2=i; col2=j; }
}
} System.out.println("所有元素的和为:"+sum); System.out.println("最大的元素的值为:"+max); System.out.println("该元素的位置在:"+row+"行,"+col+"列"); System.out.println("最小的元素值为:"+min); System.out.println("该元素的位置在:"+row2+"行,"+col2+"列");
} }
||打印输出二维数组啊,\t是格式控制符。就是把int m[][]={{6,2,24},{-5,8,7,6},{-3,-18,-4,1,66}}; 这个二维数组按格式输出,并换行。
max=m[0][0];
min=m[0][0];
把数组的第一个数赋值给最大值和最小值,
循环遍历整个数组
for(int i=0;i <m.length;i++)
{
for(int j=0;j <m[i].length;j++)
如果有比第一个数大的数字就把它赋值给max,此后的循环中如有比max还大的值,就把它赋值给max
max=m[i][j];
如果有比第一个数小的数字就把它赋值给min
min=m[i,j];
System.out.println(m[i][j]+"\t");
打印输出二维数组啊,\t是格式控制符。就是把int m[][]={{6,2,24},{-5,8,7,6},{-3,-18,-4,1,66}}; 这个二维数组按格式输出,并换行。
至于
System.out.println()就是空一行了 每输出一个数组就空一行
m.length为第一维长度;第一维在内存中存放的实际是第二维的地址.
m[].length为第二维长度;它存放的才是具体的值.