之一螺旋打印数组

前两天参加赶集网笔试的时候,碰见这么一道题

给定一个5乘5矩阵

1   2   3   4   5

6   7   8   9  10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

螺旋把它打印出来,就是打印顺序是 1 2 3 4 5 10 15 20 25 24 23 22 21 16 11 6 7 8 9 14 19 18 17 12 13

void func()
{
	int array[5][5] = {{1,2,3,4,5},
		            {6,7,8,9,10},
		            {11,12,13,14,15},
		            {16,17,18,19,20},
		            {21,22,23,24,25}};
	int startX = 0;
	int startY = 0;
	int endX = 4;
	int endY = 4;
	while (startX <= endX && startY <= endY)
	{
		int i;
		for (i = startX; i <= endX; i++)
		{
			cout << array[startY][i] << " ";
		}
		startY++;
		for (i = startY; i <= endY; i++)
		{
			cout << array[i][endX] << " ";	
		} 	
		endX--;
		for (i = endX; i >= startX; i--)
		{
			cout << array[endY][i] << " ";	
		}
		endY--;
		for (i = endY; i >= startY; i--)
		{
			cout << array[i][startX] << " ";	
		}
		startX++;
	}
}

 

 

posted on 2012-11-15 15:32  乐则行之  阅读(244)  评论(0)    收藏  举报

导航