那些年,一起学的Java 6-3

/**

 * 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 < cycleNumber; i++){	//从外到内开始循环
			
			for (int j = i; j < n-i; j++)	//从左到右赋值
			{
				array[i][j]=elem;
				elem++;
			}
			for (int k = i+1; k < n-i; 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 < n; i++)
		{
			for (int j = 0; j < n; j++)
				System.out.printf("%-3d", array[i][j]);
			System.out.println();
		}
	} 
}


你可能感兴趣的:(java,循环,螺旋矩阵)