输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。 Output 对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。 note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。java写
时间: 2024-02-25 09:56:52 浏览: 65
由于题目没给具体的计算分数的方法,我就假设每个MM的分数为该MM在矩阵中对应的整数。
以下是Java的代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) { // 处理多组输入数据
int m = scanner.nextInt();
int n = scanner.nextInt();
int[][] matrix = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = scanner.nextInt();
}
}
int maxScore = Integer.MIN_VALUE;
int selectedRow = 0;
int selectedCol = 0;
for (int i = 0; i < m; i++) { // 遍历矩阵,选出分数最高的MM
for (int j = 0; j < n; j++) {
if (matrix[i][j] > maxScore) {
maxScore = matrix[i][j];
selectedRow = i + 1;
selectedCol = j + 1;
}
}
}
System.out.println(selectedRow + " " + selectedCol + " " + maxScore);
}
scanner.close();
}
}
```
每次输入一个矩阵,我们首先使用两个循环遍历整个矩阵,找到分数最高的MM,并记录其行号和列号。最后输出选中的MM的行号、列号和分数。这里注意行号和列号要加1,因为题目定义的行号和列号从1开始。
由于输入数据有多组,我们使用了while循环和Scanner的hasNext()方法来处理多组数据。
阅读全文