用java编写随机生成5行5列的二维数组,编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置; (2)求出主对角线,副对角线上各元素之和。
时间: 2024-10-18 11:17:46 浏览: 60
在Java中,我们可以使用Random类来生成随机数,并通过二维数组来存储。以下是代码实现:
```java
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[][] array = new int[5][5];
Random rand = new Random();
// 初始化二维数组
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
array[i][j] = rand.nextInt(100); // 随机生成0-99之间的整数
}
}
//(1)找出最大值、最小值及对应位置
int maxVal = array[0][0], minVal = array[0][0];
int maxRow = 0, maxCol = 0;
int minRow = 0, minCol = 0;
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);
//(2)计算主对角线和副对角线的和
int mainDiagonalSum = 0, secondaryDiagonalSum = 0;
for (int i = 0; i < 5; i++) {
mainDiagonalSum += array[i][i];
secondaryDiagonalSum += array[i][4 - i]; // 副对角线:从左上到右下
}
System.out.println("主对角线之和: " + mainDiagonalSum);
System.out.println("副对角线之和: " + secondaryDiagonalSum);
}
}
```
这段代码首先创建了一个5x5的二维数组,并填充了随机数。然后遍历数组找到最大值和最小值以及它们的位置,最后计算并打印主对角线和副对角线的和。
阅读全文