帮忙做题的软件_帮忙做下这道Java题,要带着代码解释的,谢谢
二维数组的马鞍点,所谓马鞍点是指该位置上的数在该行上最大,在该列上最小(马鞍点可以没有也可以有多个)
最佳答案
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(); } //求马鞍点并打印输出 for(i=0;i<a.length;i++) { for(j=0;j<a[i].length;j++) if(mina[i][j]+maxa[i][j]==2) System.out.println(" "+i+"行"+j+" 列是一个马鞍点值 ="+a[i][j]); } } }
其他回答
其它网友回答:
使用穷举计算。