日期:2014-05-20 浏览次数:21009 次
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("随机产生的数组不存在鞍点!");
}
}
}