日期:2014-05-20 浏览次数:20833 次
public static void main(String[] args) { int[][] arr = new int[4][4]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { arr[i][j] = i + j; } } for (int i = 0; i < 4; i++) { int amax=arr[i][0]; int column=0; for (int j = 1; j < 4; j++) { if(arr[i][j]>amax) { amax=arr[i][j]; column=j; } } int row=0; for(int k=1;k<4;k++) { int amin=arr[k][column]; if(arr[k][column]<amin) { amin=arr[k][column]; row=k; } } if(row==i) { System.out.println("行:"+row); System.out.println("列:"+column); System.out.println("值:"+amax); } } }
------解决方案--------------------
public class andian { public andian() { } public static void main(String[] args) { int max=0; boolean cunzai=false; int min=0; int hang=0; int lie=0; int an[][]=new int[4][4]; System.out.println(" 随机产生的数组为:"); for (int i=0;i<4;i++){//随机产生4×4数组 for(int m=0;m<4;m++){ an[i][m]=(int)(Math.random()*100+1); System.out.print(an[i][m]+" "); if(m==3){ System.out.println(""); } } } //开始判断鞍点的位置 for (int i=0;i<4;i++){ for(int m=0;m<4;m++){//找出行中的最大值及位置 if(an[i][m]>max){ max=an[i][m]; hang=i; lie=m; min=max; } } for(int e=0;e<4;e++){//判断找出的最大值是不是列中的最小值 if(an[e][lie]<min){ cunzai=false; break; }else{ cunzai=true; } } } if(cunzai){ System.out.println("随机产生的数组存在鞍点: "+min); System.out.println("位于第"+(hang+1)+"行,第"+(lie+1)+"列。"); }else{ System.out.println("随机产生的数组不存在鞍点!"); } } }