java输入5行5列的二维数组,求出其中最大值和最小值及其对应的行列位置,求出主副对角线上个元素之和
时间: 2024-10-14 15:11:28 浏览: 46
在 Java 中,你可以使用 `Scanner` 类从用户那里获取输入,然后创建一个二维数组来存储数据。接下来,我们可以遍历这个数组,找出最大值、最小值以及它们的位置,并计算主副对角线上的元素之和。这里是一个示例程序:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int rows = 5;
int cols = 5;
// 获取二维数组的元素
System.out.println("请输入 " + rows + " 行 " + cols + " 列的二维数组:");
int[][] array = new int[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
array[i][j] = scanner.nextInt();
}
}
// 找到最大值、最小值及其位置
int maxVal = array[0][0], minVal = array[0][0], maxRow = 0, maxCol = 0, minRow = 0, minCol = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (array[i][j] > maxVal) {
maxVal = array[i][j];
maxRow = i;
maxCol = j;
} else if (array[i][j] < minVal) {
minVal = array[i][j];
minRow = i;
minCol = j;
}
}
}
// 计算主副对角线上元素之和
int sumMainDiagonal = 0, sumSecondaryDiagonal = 0;
for (int i = 0; i < Math.min(rows, cols); i++) {
sumMainDiagonal += array[i][i];
sumSecondaryDiagonal += array[i][rows - i - 1];
}
// 输出结果
System.out.printf("最大值 %d 对应于行 %d, 列 %d\n", maxVal, maxRow + 1, maxCol + 1);
System.out.printf("最小值 %d 对应于行 %d, 列 %d\n", minVal, minRow + 1, minCol + 1);
System.out.printf("主对角线上元素之和: %d\n", sumMainDiagonal);
System.out.printf("副对角线上元素之和: %d\n", sumSecondaryDiagonal);
scanner.close();
}
}
```
运行此程序后,按照提示逐行输入数值,程序将为你找到最大值、最小值及它们的位置,并计算两条对角线上的元素总和。
阅读全文