找二维数组中最大元素所在的位置
java编程:对一个给定的4*5的二维数组进行赋值,并且找出各行中最大元素以及其在该行的位置。
public class Shiyan3_11 {
public static void main (String[] args) {
int i,j,row = 0,colum = 0 ,max = 0;
int[][] a = {{70,12,20,13,16},
{30,21,13,17,18},
{18,12,50,65,31},
{32,33,25,24,40},
};
for(i = 0;i < a.length;i++){
for(j = 0;j < a[i].length;j++){
System.out.print(a[i][j] + ",");
}
System.out.println();
}
System.out.println();
for(i = 0;i < a.length;i++){
max = a[i][0];
for(j = 0;j < a[i].length;j++){
if(a[i][j] > max){
max = a[i][j];
colum = j;
}
}
row = i;
int temp = a[i][0];
a[i][0] = a[i][colum];
a[i][colum] = temp;
System.out.println("第"+i+"行的最大数是:a[" + row + "][" + colum +"]=" + max);
}
}
}
运行结果:
70,12,20,13,16,
30,21,13,17,18,
18,12,50,65,31,
32,33,25,24,40,
第0行的最大数是:a[0][0]=70
第1行的最大数是:a[1][0]=30
第2行的最大数是:a[2][3]=65
第3行的最大数是:a[3][4]=40
------解决方案--------------------
------解决方案--------------------Java code
public class FindMax {
public static void main(String[] args) {
int[][] arr = { { 70, 12, 20, 13, 16 }, { 30, 21, 13, 17, 18 },
{ 18, 12, 50, 75, 31 }, { 32, 33, 25, 24, 40 }, };
int max = 0;
int row = -1;
int col = -1;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
if(arr[i][j]>max){
max = arr[i][j];
row = i;
col = j;
}
}
}
System.out.println("最大元素是:"+max+" 位置是 i="+row+" j="+col);
}
}
------解决方案--------------------
这个很简单的啊,下面是最直接的比较方法,你看看,其实最重要的是自己多去思考思考。
public static void GetMaxNbr1(int[][] a) {
int max, x, y;
if (a.length > 0 && a[0].length > 0) {
x=0;
y=0;
max = a[x][y];
for (int i = 0; i < a.length; i++) {
for (int j = 1; j < a[0].length; j++) {
if(a[i][j]>max)
{
x=i;
y=j;
max = a[i][j];
}
}
}
System.out.println("数组a数据最大值位置是:a["+x+"]["+y+"];");
System.out.println("数组a数据最大值是:"+a[x][y]);
}
}