Java输入一个5行5列的二维数组,编程实现:1.求出其中的最大值和最小值及其对应的行列位置。2.求出主,副对角线上的各元素之和
时间: 2024-10-29 14:11:44 浏览: 10
在Java中,我们可以创建一个二维数组并实现这两个功能。首先,我们需要读取用户输入的数组元素,然后计算最大值、最小值以及它们的位置,最后计算主对角线和副对角线上的元素总和。下面是一个简单的示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] array = new int[5][5]; // 创建5x5的二维数组
System.out.println("请输入5x5的二维数组:");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
array[i][j] = scanner.nextInt();
}
}
// 求最大值、最小值及位置
int maxVal = Integer.MIN_VALUE;
int minVal = Integer.MAX_VALUE;
int maxRow = 0, maxCol = 0;
int minRow = 4, minCol = 4; // 初始化为最后一个元素的行、列
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (array[i][j] > maxVal) {
maxVal = array[i][j];
maxRow = i;
maxCol = j;
}
if (array[i][j] < minVal) {
minVal = array[i][j];
minRow = i;
minCol = j;
}
}
}
System.out.printf("最大值 %d,在第 %d 行第 %d 列\n", maxVal, maxRow + 1, maxCol + 1);
System.out.printf("最小值 %d,在第 %d 行第 %d 列\n", minVal, minRow + 1, minCol + 1);
// 主对角线和副对角线上的元素之和
int diagonalSum = 0;
for (int i = 0; i < 5; i++) {
diagonalSum += array[i][i]; // 主对角线
}
int antiDiagonalSum = 0;
for (int i = 0; i < 5; i++) {
antiDiagonalSum += array[i][4-i]; // 副对角线(从左上到右下)
}
System.out.println("主对角线上的元素之和为: " + diagonalSum);
System.out.println("副对角线上的元素之和为: " + antiDiagonalSum);
scanner.close();
}
}
```
阅读全文