二维数组中,若某个元素的值在其所属的行中是最大的,而在其所属的列中是最小的,这个元素就称为鞍点。例如右边表格中的“5”就是一个鞍点。 编写程序查找一个整型二维数组的鞍点 若存在,则显示鞍点的位置(行列号), 若不存在,则输出相应信息,用java编写
时间: 2023-06-13 19:07:08 浏览: 102
找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点)。Java
4星 · 用户满意度95%
下面是一个查找整型二维数组鞍点的Java程序:
```java
public class SaddlePoint {
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = matrix.length;
int cols = matrix[0].length;
boolean found = false;
for (int i = 0; i < rows; i++) {
int minIndex = 0;
for (int j = 1; j < cols; j++) {
if (matrix[i][j] < matrix[i][minIndex]) {
minIndex = j;
}
}
boolean isSaddlePoint = true;
for (int k = 0; k < rows; k++) {
if (matrix[k][minIndex] > matrix[i][minIndex]) {
isSaddlePoint = false;
break;
}
}
if (isSaddlePoint) {
System.out.println("Saddle point found at (" + i + ", " + minIndex + ")");
found = true;
}
}
if (!found) {
System.out.println("No saddle point found.");
}
}
}
```
程序首先定义了一个整型二维数组 `matrix`,并获取了它的行数和列数。然后程序遍历数组的每一行,找到该行中最小的元素,并记录它的列索引为 `minIndex`。接着程序检查该列上的每一个元素是否都不大于该行中最小的元素,如果是,则表示该元素是一个鞍点。如果程序找到了鞍点,则输出鞍点的位置,否则输出未找到鞍点的信息。
上述程序的输出结果为:
```
Saddle point found at (0, 2)
No saddle point found.
```
这是因为第一个数组存在一个鞍点,但第二个数组不存在鞍点。
阅读全文