Java从键盘输入矩阵阶数n,给n阶矩阵的元素按行序从1到n * n顺序赋值,然后将矩阵按顺时针右旋转90度,输出旋转后的矩阵
时间: 2024-11-12 22:31:27 浏览: 71
在Java中,你可以通过以下几个步骤来实现这个功能:
1. 首先,你需要创建一个二维数组(或称为矩阵)来存储用户输入的整数值。这可以通过`int[][] matrix = new int[n][n];`完成。
2. 然后,编写一个循环结构来获取用户的输入,并将其存储到矩阵中。可以使用两个嵌套循环,第一个索引i表示行,第二个索引j表示列。由于是从1到n*n的顺序,所以遍历时将j减去n,即`matrix[i][j] = i * n + (j - n) + 1;`。
3. 对于顺时针旋转90度,实际上是对矩阵进行"转置"再翻转操作。首先,创建一个新的矩阵`rotatedMatrix = new int[n][n];`来保存结果。
4. 接下来,使用两层循环进行矩阵转置。外层循环控制新矩阵的行,内层循环控制新矩阵的列,此时j变为旧矩阵的行,i变为旧矩阵的列,即`rotatedMatrix[j][i] = matrix[i][n - j - 1];`。
5. 最后,打印旋转后的矩阵。遍历新矩阵并输出每个元素即可。
下面是一个简单的示例代码片段:
```java
import java.util.Scanner;
public class MatrixRotation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入矩阵的阶数n: ");
int n = scanner.nextInt();
int[][] matrix = new int[n][n];
// 输入矩阵元素
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = i * n + (j - n) + 1;
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
// 顺时针右旋转90度
int[][] rotatedMatrix = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
rotatedMatrix[j][i] = matrix[i][n - 1];
}
}
// 输出旋转后的矩阵
for (int[] row : rotatedMatrix) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
scanner.close();
}
}
```
阅读全文