用java编写应用程序,使用二维数组存储n*m的矩阵,输出其鞍点,(即在矩阵中行的最大数,且列的最小数),如无鞍点,则输出"NO"。 如矩阵为: 87 90 110 98 70 97 210 65 98 45 120 30 则输出110
时间: 2024-05-12 08:16:31 浏览: 69
以下是Java代码实现:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int[][] matrix = new int[n][m];
//读取矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = scanner.nextInt();
}
}
//查找鞍点
for (int i = 0; i < n; i++) {
int max = matrix[i][0];
int col = 0;
for (int j = 1; j < m; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
col = j;
}
}
boolean isSaddle = true;
for (int k = 0; k < n; k++) {
if (matrix[k][col] < max) {
isSaddle = false;
break;
}
}
if (isSaddle) {
System.out.println(max);
return;
}
}
System.out.println("NO");
}
}
```
首先读取输入的矩阵,并使用两个循环遍历矩阵中的所有元素。
然后,对于矩阵中的每一行,查找该行中的最大值及其所在的列,然后检查该列中是否有最小值,如果有最小值,则说明该点为鞍点,输出该值并结束程序。如果没有找到鞍点,则输出"NO"。
阅读全文