无意中看到了的一个笔试题,比较简单,题目如下:
顺时针输出一个nn的方阵,例如44的方阵
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输出结果为 4 8 12 16 15 14 13 9 5 1 2 3 7 11 10 6
C/C++代码如下:
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
int main()
{
int A[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 n = 5;
int left = 0, right = n - 1, top = 0, buttom = n - 1;
int i, j;
int flag = 0;//0向下,1向左,2向上,3向下
while (left <= right || top <= buttom)
{
switch (flag)
{
case 0:
for (i = top; i <= buttom; i++)
{
cout << A[i][right] << ends;
}
flag = 1;
right--;
break;
case 1:
for (i = right; i >= left; i--)
{
cout << A[buttom][i] << ends;
}