鞍点列优先java代码 java找鞍点

用java编写 在二维数组中找出鞍点鞍点是指某元素值在该行中最大.在该列中最小,并输出该点

public class findSaddlPoint{

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了莲池免费建站欢迎大家使用!

public static void main(Stirng args[]){

int[][] intArray = new int[][];

//只是你要搜索的2维数组。这里假设你已经赋值了。

int temp=intArray[0][0];

int i=1;

int isSaddlePoint = false;

for(k =0;kintArray.length;k++){

for(i =1;iintArray.length;i++){

if(tempintArray[i][k]) temp=intArray[i][k];

}

for(int j=0;jintArray.length;j++){

if(tempintArray[i][j]) {

isSaddlePoint = false;

break;

}

isSaddlePoint = true;

}

if(isSaddlePoint) System.out.println(temp);

}

}

}

设计一个Java程序,查找二维数组中的马鞍点(本行中最小、但本列中最大的点。假设二维数组中没有重复数据

#include#defineN10#defineM10voidmain(){inti,j,k,m,n,flag1,flag2,a[N][M],max,maxj;printf("输入行数n:");scanf("%d",n);printf("\n输入列数m:");scanf("%d",m);for(i=0;imax){max=a[i][j];maxj=j;}for(k=0,flag1=1;ka[k][maxj])flag1=0;if(flag1){printf("\n第%d行第%d列的%d是鞍点\n",i,maxj,max);flag2=1;}}if(!flag2)printf("\n矩阵无鞍点!\n");}

java从键盘输入一个数组,找出其中的鞍点

/*

程序的功能:

求任意的一个m×n矩阵的鞍点——鞍点是指该位置上的元素在该行上为最大、在该列上为最小,

矩阵中可能没有鞍点,但最多只有一个鞍点。

m、n(2=m=20、2=n=20)及矩阵元素从键盘输入(只考虑int型和每行、每列中没有并列最大/最小的情况)。

*/

public static void main(String[] args) {

int[][] arr = new int[20][20];

int m, n;

int max, min;

int maxHPos, maxLPos, minHPos, minLPos;

int flag = 0;

Scanner sc = new Scanner(System.in);

System.out.println("请输入m的值:");

m = sc.nextInt();

System.out.println("请输入n的值:");

n = sc.nextInt();

/* 从键盘输入m×n矩阵,并存放到数组arr中 */

System.out.println("请输入矩阵的值:");

for (int i = 0; i  m; i++) {

for (int j = 0; j  n; j++) {

arr[i][j] = sc.nextInt();

}

}

/* 在矩阵中找鞍点 */

for (int i = 0; i  m; i++) {

/* 找第i行的最大值及最大值的下标(包括行标和列标),i的值从0开始 */

max = arr[i][0];

maxHPos = i;

maxLPos = 0;

for (int j = 1; j  n; j++) {

if (arr[i][j]  max) {

max = arr[i][j];

maxHPos = i;

maxLPos = j;

}

}

/* 在第i行的最大值所在列找该列的最小值及其下标 */

min = arr[0][maxLPos];

minHPos = 0;

minLPos = maxLPos;

for (int k = 1; k  m; k++) {

if (arr[k][maxLPos]  min) {

min = arr[k][maxLPos];

minHPos = k;

minLPos = maxLPos;

}

}

/* 判断第i行的最大值是否是第i行最大值所在列的最小值,如果是,找到鞍点*/

if ((maxHPos == minHPos)  (maxLPos == minLPos)) {

System.out.println(String.format("有鞍点:arr[%d][%d]=%d", maxHPos,

maxLPos, arr[maxHPos][maxLPos]));

flag = 1; //给变量flag赋值1,表示鞍点已找到

break; //鞍点已找到,结束查找过程

}

}

if (0 == flag) //flag的值为0,表示在矩阵中没有找到鞍点

{

System.out.println("没有鞍点");

}

}

求二维数组的马鞍点 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;ia.length;i++)

{

temp=a[i][0];

for(j=1;ja[i].length;j++)

if (a[i][j]temp)

temp=a[i][j];

for (j=1;ja[i].length;j++)

if(a[i][j]==temp)

mina[i][j]=1;

}

//求出列中最大值并标记

for(j=0;ja[0].length;j++)

{

temp=a[0][j];

for(i=1;ia.length;i++)

if (a[i][j]temp)

temp=a[i][j];

for (i=1;ia.length;i++)

if(a[i][j]==temp)

maxa[i][j]=1;

}

//打印输出矩阵

for(i=0;ia.length;i++)

{

for(j=0;ja[i].length;j++)

System.out.print(" "+a[i][j]+" ");

System.out.println();

}

//求马鞍点并打印输出

for(i=0;ia.length;i++)

{

for(j=0;ja[i].length;j++)

if(mina[i][j]+maxa[i][j]==2)

System.out.println(" "+i+"行"+j+" 列是一个马鞍点值 ="+a[i][j]);

}

}

}

java输出马鞍数

package com.njty.test;

/**

* 马鞍数

* @author Administrator

*

*/

public class MAS {

/**

* @param args

*/

public static void main(String[] args) {

//定义二维数组

int arrays[][] = {

{5,6,3,8,9},

{4,5,6,7,8},

{3,4,5,2,1},

{2,3,4,9,0},

{1,2,5,4,8}

};

boolean flag = true; //用于标记是否是马鞍数

for(int i = 0; i 5; i++){

int tempM = arrays[i][0]; //首先将第一行第一列数假设就是马鞍数

int tempi = 0; //用于行判断

int tempj = 0; //用于存储每行最小数所在的列数

for(int j = 0; j 5; j++){

if(arrays[i][j] tempM){//找到行中最小的数

tempM = arrays[i][j];

tempj = j; //保存最小数的列数

}

}

while(tempi 5){

if(tempM arrays[tempi][tempj]){//判断是否是列中最大的数

flag = false; //不符合条件则将标记置为false

}

tempi++;

}

if(flag){

System.out.println("马鞍数是 第"+(i+1)+"行第"+(tempj+1)+"列的数:"+tempM);

}

}

if(!flag){

System.out.println("该组数中不存在马鞍数!");

}

}

}

JAVA数组问题

public static void main(String[] args)

{

int mat[][] = new int[4][4];

Scanner sc = new Scanner(System.in);

for (int i = 0; i 4; i++)

{

for (int j = 0; j 4; j++)

{

mat[i][j] = sc.nextInt();

}

}

for (int i=0;imat.length;i++) //输出二维数组元素

{

for(int j=0;jmat[i].length;j++)

System.out.print(mat[i][j]+" ");

System.out.println();

}

boolean find = false; //找到鞍点标记

int row=0; //第1行下标

int max=0; //记录当前行最大值的列下标

while (!find rowmat.length)

{

max=0; //初始设每行第1列值最大

for (int j=1;jmat[row].length;j++) //在row行上找最大值

if (mat[row][j]mat[row][max]) //mat[row][max]为该行最大值

max = j;

boolean yes = true; //再判断mat[row][max]是否在列上最小

int j=0;

while (yes jmat.length)

{

if(mat[j][max]mat[row][max])

yes=false;

j++;

}

if (yes)

find = true;

else

row++;

}

if (find)

System.out.println("The dort: "+mat[row][max]);

else

System.out.println("The dort: null");

}


当前文章:鞍点列优先java代码 java找鞍点
转载注明:http://hbruida.cn/article/hgijgs.html