编写程序,从键盘输入矩阵阶数n,给n阶矩阵的元素按行序从1到n * n顺序赋值,然后将矩阵按顺时针右旋转90度,输出旋转后的矩阵。Java
时间: 2024-12-06 16:24:23 浏览: 14
在Java中,你可以编写一个程序,首先接收用户输入的矩阵阶数,然后创建矩阵并填充元素,接着执行矩阵的顺时针右旋90度的操作,并打印出结果。以下是一个简单的实现:
```java
import java.util.Scanner;
public class MatrixRotation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取矩阵的阶数
System.out.println("请输入矩阵的阶数:");
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 + 1) * n + (j + 1); // 行序从1开始
System.out.print(matrix[i][j] + " "); // 打印当前元素
}
System.out.println(); // 换行
}
// 顺时针右旋转90度
for (int k = 0; k < n / 2; k++) {
// 交换对角线上的元素
for (int i = k; i < n - k - 1; i++) {
int temp = matrix[k][i];
matrix[k][i] = matrix[n - 1 - i][k]; // 上左对角线
matrix[n - 1 - i][k] = matrix[n - 1 - k][n - 1 - i]; // 下右对角线
matrix[n - 1 - k][n - 1 - i] = matrix[i][n - 1 - k]; // 下左对角线
matrix[i][n - 1 - k] = temp; // 上右对角线
}
}
// 输出旋转后的矩阵
System.out.println("\n旋转后的矩阵:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
scanner.close(); // 关闭扫描器
}
}
```
这个程序会先读取矩阵的阶数,然后生成一个n x n的矩阵,并按照指定规则填充数值,接着通过两层循环交换矩阵的四个角上的元素完成右旋转,最后输出旋转后的矩阵。
阅读全文