Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int a[][] = new int[n][n];
int manX = n - 1;
int minX = 0;
int manY = n - 1;
int minY = 0;
int count = 0;
while (minX<=manX) {
for (int x=minX;x<=manX;x++){
a[minY][x]=++count;
}
minY++;
for (int y=minY;y<=manY;y++) {
a[y][manX] =++count;
}
manX--;
for (int x=manX;x>=minX;x--) {
a[manY][x]=++count;
}
manY--;
for (int y=manY;y>=minY;y--) {
a[y][minX] =++count;
}
manX++;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
System.out.print(a[i][j] + " ");
}
System.out.println();
manX++;
改成
minX++;
太不细心了,这也能错。
min只能增,max只能减
max一直长不溢出了
把一串代码写到main主函数里面,运行后,在控制台输入数据,然后回车就可以了
若对你有用的话,请采纳一下哈!