.定义一个n阶的二维整型数组(n 由键盘输入,数组元素为0-99的随机整数),求数组四周元素之和及对角线元素之和。
时间: 2024-11-03 10:17:35 浏览: 41
C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,
5星 · 资源好评率100%
为了定义一个n阶的二维整型数组,并计算数组四周元素之和及对角线元素之和,你可以使用Java编写如下的程序:
```java
import java.util.Scanner;
import java.util.Random;
public class ArraySum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组的行数(n): ");
int n = scanner.nextInt();
// 定义二维数组
int[][] array = new int[n][n];
// 随机生成0到99之间的整数
Random random = new Random();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
array[i][j] = random.nextInt(100); // 注意这里范围是0-99,包括边界
System.out.print(array[i][j] + " "); // 输出以便查看数组内容
}
System.out.println(); // 每一行结束后换行
}
// 计算四周元素之和
int sumBorder = 0;
for (int i = 0; i < n; i++) {
sumBorder += array[0][i]; // 上边
sumBorder += array[n - 1][i]; // 下边
if (i != 0) {
sumBorder += array[i][0]; // 左边
}
if (i != n - 1) {
sumBorder += array[i][n - 1]; // 右边
}
}
// 计算主对角线元素之和
int sumDiagonal = 0;
for (int i = 0; i < n; i++) {
sumDiagonal += array[i][i];
}
// 计算副对角线元素之和,如果数组大小是奇数,才有副对角线
int sumAntidiagonal = 0;
if (n % 2 == 1) {
for (int i = 0; i < n; i++) {
sumAntidiagonal += array[i][n - 1 - i];
}
} else {
sumAntidiagonal = 0;
}
// 输出结果
System.out.println("\n四周元素之和: " + sumBorder);
System.out.println("主对角线元素之和: " + sumDiagonal);
if (n % 2 == 1) {
System.out.println("副对角线元素之和: " + sumAntidiagonal);
} else {
System.out.println("由于数组大小偶数,没有副对角线");
}
}
}
```
这个程序会首先让用户输入数组的行数,然后创建一个n x n的二维数组,填充随机整数。接着分别计算四周、主对角线和副对角线元素之和,并将结果打印出来。注意,副对角线只在数组大小为奇数的情况下存在。
阅读全文