c语言:二维数组,螺旋矩阵打印。PTA;

#include
#include
int main()
{
	int i, j, n, number[100][100], count = 1;
	scanf("%d", &n);
	//螺旋矩阵n*n ,n/2就可以获得几个旋的个数;
	for (i = 0; i <= n / 2; i++)
	{
		//打印向下数组;  n=7时;
		for (j =i ; j < n - i; j++)			//down    0<7
			number[j][n - i - 1] = count++;	//06.16.26.36.46.56.66
		//打印向前数组应当在输入的number上每次减去2位;
		for (j = n - i - 2; j >= i; j--)			//back;   5 >= 0 
			number[n - i - 1][j] = count++;   //	65.64.63.62.61.60
		//打印向上的数组(x,y)x变动;
		for (j = n - i - 2; j >= i; j--)			//up  5 >= 0
			number[j][i] = count++;		//50.40.30.20.10.00.		
		//打印向前数(x,y)y变动;
		for (j = i+1; j <= n - i-2; j++)      		//forwad  1<5
			number[i][j] = count++;		// 01 02 03 04 05;
	}
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
			printf("%3d", number[i][j]);
		printf("\n");
	}
	return 0;
}

c语言:二维数组,螺旋矩阵打印。PTA;_第1张图片

思路就是,大循环控制几个螺旋次数;

里面的小循环控制每个方向的数组打印;

你可能感兴趣的:(算法)