求二维数组的马鞍点 java

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:41:35
马鞍点定义为本行中最大,但本列中最小的元素。。。
这个是我的 看看有错没有class Saddle{
public static void main(String args[]){
int a [][]={{1,3,4,7},{5,6,2,0},{16,36,61,18}};
int lineMin;
int minX;
int minY;
again: for(int i=1;i<a.length;i++){
lineMin=a[i][0];
minX=i;
minY=0;
for(int j=1;j<a.length;j++){
if(a[i][j]<lineMin){
lineMin=a[i][j];
minX=i;
minY=j;
}
}
for(int j=0;j<a[i].length;j++){
if(a[j][minY]<lineMin){
lineMin=a[i][j];
minX=i;
minY=j;
}
}
System.out.println("马鞍点"+lineMin+"位于:("+minX+","+minY+")");
}
}
}

class mypoint
{
public static void main (String args[])
{
int a[][]={{1,2,3,4,5},{7,3,4,5,6},{2,1,5,4,3},{5,3,6,5,4}};
int i,j,temp;
int maxa[][]=new int [4][5];
int mina [][]=new int [4][5];

//求出行中最小值并标记
for(i=0;i<a.length;i++)
{
temp=a[i][0];
for(j=1;j<a[i].length;j++)

if (a[i][j]<temp)
temp=a[i][j];
for (j=1;j<a[i].length;j++)
if(a[i][j]==temp)
mina[i][j]=1;
}

//求出列中最大值并标记
for(j=0;j<a[0].length;j++)
{
temp=a[0][j];
for(i=1;i<a.length;i++)
if (a[i][j]>temp)
temp=a[i][j];
for (i=1;i<a.length;i++)
if(a[i][j]==temp)
maxa[i][j]=1;
}

//打印输出矩阵
for(i=0;i<a.length;i++)
{
for(j=0;j<a[i].length;j++)
System.out.print(" "+a[i][j]+" ");
System.out.println();
}
//