用java编译以下问题:利用随机函数产生25个随机整数给一个5行5列的二维数组赋值。按行列输出该数组;求其最外一圈元素之和;求主对角线中最大元素的值,指出其位置
时间: 2024-03-20 10:45:04 浏览: 68
好的,以下是Java代码实现:
```java
import java.util.Random;
public class Main {
public static void main(String[] args) {
int[][] arr = new int[5][5];
Random random = new Random();
// 随机生成25个随机整数并赋值给二维数组
for (int i = 0; i < 25; i++) {
int row = i / 5;
int col = i % 5;
arr[row][col] = random.nextInt(100);
}
// 按行列输出二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
// 求最外一圈元素之和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (i == 0 || i == arr.length - 1 || j == 0 || j == arr[i].length - 1) {
sum += arr[i][j];
}
}
}
System.out.println("最外一圈元素之和:" + sum);
// 求主对角线中最大元素的值及其位置
int max = arr[0][0];
int maxRow = 0;
int maxCol = 0;
for (int i = 0; i < arr.length; i++) {
if (max < arr[i][i]) {
max = arr[i][i];
maxRow = i;
maxCol = i;
}
}
System.out.println("主对角线中最大元素的值:" + max);
System.out.println("位置:第" + (maxRow + 1) + "行,第" + (maxCol + 1) + "列");
}
}
```
运行结果:
```
89 78 50 5 91
23 80 74 43 36
54 77 17 45 57
43 97 25 6 8
9 13 22 89 98
最外一圈元素之和:638
主对角线中最大元素的值:89
位置:第1行,第1列
```
阅读全文