/**
* 6-3
* 编程实现如下要求的螺旋矩阵
* 螺旋方阵存放在n*n的二维数组中并将其打印输出
* 要求 n 由程序读入
* 数字螺旋方阵由程序自动生成
* (非人为的初始化或逐个输入)
*/import java.io.*;
import java.util.*;
public class Test{
public static void main(String[] args){
/*声明一个维数是n的数组*/
int n=0;
System.out.print("请输入螺旋矩阵的维数n:");
Scanner read = new Scanner(System.in);
n = read.nextInt();
int array[][] = new int[n][n];
/*为数组中的各个元素赋值*/
int elem = 1; //初始化第一个元素的值为1
int cycleNumber=0;//判断循环的次数
if (n % 2 != 0)
cycleNumber=n/2+1;
else
cycleNumber=n/2;
for(int i = 0; i
for (int j = i; j
{
array[i][j]=elem;
elem++;
}
for (int k = i+1; k
{
array[k][n-i-1]=elem;
elem++;
}
for (int l = n-i-2; l >= i; l--)//从右到左赋值
{
array[n-i-1][l]=elem;
elem++;
}
for (int m = n-i-2; m > i; m--)//从下到上赋值
{
array[m][i]=elem;
elem++;
}
}
/*输出数组*/
for(int i = 0; i
{
for (int j = 0; j
System.out.printf("%-3d", array[i][j]);
System.out.println();
}
}
}