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];
int amin=arr[k][column]; 应该为int amin=arr[k-1][column]; public class Andian{ public static void main(String[] args) { int[][] arr ={ {67,164,786,22}, {681,764,39,81}, {7,12,7,21}, {616,310,24,23} }; int n=0; 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-1][column];
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 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("随机产生的数组不存在鞍点!");
}
}
}
应该为int amin=arr[k-1][column];
public class Andian{
public static void main(String[] args) {
int[][] arr ={
{67,164,786,22},
{681,764,39,81},
{7,12,7,21},
{616,310,24,23}
};
int n=0;
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-1][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);
n++;
}
}
if(n==0)
System.out.println("不存在鞍点!");
}
}
System.out.println("列:"+column);
System.out.println("值:"+amax);
改为System.out.println("鞍点为:"+"arr["+row+"]["+column+"]"+"="+amax);比较好点,因为输出来的时候,行列的值都是相应加一的,那只是下标。