突然记起考研时上机测试的一道编程题,要把矩阵旋转90,180,270度并输出,当时比较紧张答得不是很理想,所以花几分钟重新写了一个测试的例子
-
public class Test {
-
-
public static void main(String[] args) {
-
int src[][] = new int[5][5];
-
for (int i = 0; i < 5; i++) {
-
for (int j = 0; j < 5; j++) {
-
src[i][j] = i * 5 + j + 1;
-
}
-
}
-
prientArrayp(src);
-
prientArrayp(rotate(src, 90));
-
prientArrayp(rotate(src, 180));
-
prientArrayp(rotate(src, 270));
-
}
-
-
static int[][] rotate(int[][] src, int degree) {
-
System.out.println("rotate" + degree);
-
int temp[][] = new int[5][5];
-
switch (degree) {
-
case 90:
-
for (int i = 0; i < 5; i++) {
-
for (int j = 0; j < 5; j++) {
-
temp[i][4 - j] = src[j][i];
-
}
-
}
-
break;
-
case 180:
-
for (int i = 0; i < 5; i++) {
-
for (int j = 0; j < 5; j++) {
-
temp[4 - i][4 - j] = src[i][j];
-
}
-
}
-
break;
-
case 270:
-
for (int i = 0; i < 5; i++) {
-
for (int j = 0; j < 5; j++) {
-
temp[4 - i][j] = src[j][i];
-
}
-
}
-
break;
-
}
-
-
return temp;
-
}
-
-
private static void prientArrayp(int[][] p) {
-
for (int i = 0; i < 5; i++) {
-
for (int j = 0; j < 5; j++) {
-
System.out.print(p[i][j]);
-
System.out.print(" ");
-
if (p[i][j] < 10) {
-
System.out.print(" ");
-
}
-
}
-
System.out.println();
-
}
-
System.out.println();
-
}
-
-
}
运行程序输出结果如下:
阅读(2150) | 评论(0) | 转发(0) |