java输入给定一个参数n,生成一个n*n大小的数组,然后输出两个数组,第一个数组对角线位置为y,其他位置为x,第二个数组 Y的位置为x,其他位置为y。
时间: 2024-11-06 20:13:42 浏览: 23
在Java中,你可以通过两层循环来创建这样的二维数组,并分别填充对角线和非对角线元素。这里是一个简单的示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入矩阵的行数n:");
int n = scanner.nextInt();
// 创建一个n * n的二维数组
int[][] matrix = new int[n][n];
// 输出第一个数组,对角线为y,其他为x
System.out.println("第一数组(对角线为y,其他为x):");
for (int i = 0; i < n; i++) {
matrix[i][i] = n - i; // 对角线元素从n到1递减
if (i != n - 1) { // 非对角线元素为i
matrix[i][i + 1] = i;
}
}
// 输出第二个数组,对角线为x,其他为y
System.out.println("\n第二数组(对角线为x,其他为y):");
for (int i = 0; i < n; i++) {
matrix[i][n - i - 1] = i; // 反向对角线元素从0到n-1递增
if (i != 0) { // 非反向对角线元素为n-i-1
matrix[i][n - i] = n - i - 1;
}
}
// 打印整个矩阵
printMatrix(matrix);
scanner.close();
}
// 打印矩阵的方法
private static void printMatrix(int[][] matrix) {
for (int[] row : matrix) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
```
阅读全文