java 输入一个5行5列的二维数组,编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置;(2)求出主副对角线上各元素之和
时间: 2024-10-14 07:15:18 浏览: 63
在Java中,你可以使用Scanner类从用户那里获取输入,并通过for循环遍历二维数组来实现这两个功能。这里是一个简单的示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取5x5矩阵的输入
System.out.println("请输入一个5行5列的二维整数数组,以逗号分隔每个元素(例如:1,2,3,4,5):");
int[][] matrix = new int[5][5];
for (int i = 0; i < 5; i++) {
String[] rowInput = scanner.nextLine().split(",");
for (int j = 0; j < 5; j++) {
matrix[i][j] = Integer.parseInt(rowInput[j]);
}
}
// (1)寻找最大值、最小值及其坐标
int minValue = matrix[0][0], maxValue = matrix[0][0], minRow = 0, maxRow = 0, minCol = 0, maxCol = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] > maxValue) {
maxValue = matrix[i][j];
maxRow = i;
maxCol = j;
} else if (matrix[i][j] < minValue) {
minValue = matrix[i][j];
minRow = i;
minCol = j;
}
}
}
System.out.printf("最小值 %d 在第 %d 行第 %d 列,最大值 %d 在第 %d 行第 %d 列.\n", minValue, minRow + 1, minCol + 1, maxValue, maxRow + 1, maxCol + 1);
// (2)计算主副对角线元素之和
int sumMainDiagonal = 0, sumAntiDiagonal = 0;
for (int i = 0; i < 5; i++) {
sumMainDiagonal += matrix[i][i]; // 主对角线
sumAntiDiagonal += matrix[i][4-i]; // 副对角线
}
System.out.printf("主对角线元素之和为: %d\n", sumMainDiagonal);
System.out.printf("副对角线元素之和为: %d\n", sumAntiDiagonal);
scanner.close();
}
}
```
阅读全文