用java写一个4*4的二维数组矩阵,并找出这个矩阵的所有鞍点,然后输出鞍点的位置和值
时间: 2023-05-24 20:04:37 浏览: 212
求一个二维数组的鞍点
以下是Java代码:
```
public class Main {
public static void main(String[] args) {
int[][] matrix = {
{4, 5, 6, 7},
{3, 9, 8, 6},
{2, 5, 7, 1},
{1, 2, 3, 4}
};
int count = 0;
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
int value = matrix[i][j];
boolean isSaddlePoint = true;
for (int k = 0; k < matrix.length; k++) {
if (value < matrix[k][j]) {
isSaddlePoint = false;
break;
}
}
if (isSaddlePoint) {
for (int k = 0; k < matrix[0].length; k++) {
if (value > matrix[i][k]) {
isSaddlePoint = false;
break;
}
}
}
if (isSaddlePoint) {
System.out.println("Saddle Point " + ++count + ":");
System.out.println("Value: " + value);
System.out.println("Position: " + (i+1) + "x" + (j+1));
}
}
}
if (count == 0) {
System.out.println("The matrix doesn't have any saddle points.");
}
}
}
```
这个程序中,我们使用一个三重循环来遍历整个矩阵。首先,我们取出每个位置的值,然后分别遍历该值所在的列和行,如果该值同时满足两个条件:在该列中最大,在该行中最小,那么该值即为鞍点。我们使用一个变量count来记录鞍点的个数,如果count没有被更新,那么说明该矩阵中不存在鞍点。最后,我们输出所有鞍点的位置和值。
阅读全文