#include <stdio.h>
#include <stdlib.h>
#define N 4

void main()
{
    int a[N][N] = { 0 };
    int data = 1;

    

    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            a[i][j] = 0;
        }
    }

    for (int i = 0, j = 0, k = 0; k < (N + 1) / 2; k++)
    {
        while (j < N - k)//控制层数
        {
            a[i][j] = data;//赋值
            j++;//往右边移动
            data++;
        }
        j--;//退回
        i++;//转向

        while (i < N - k)
        {
            a[i][j] = data;
            i++;
            data++;
        }

        i--;
        j--;//退回转向
        while (j > k - 1)//减去一层
        {
            a[i][j] = data;
            j--;
            data++;
        }

        j++;
        i--;
        while (i > k)
        {
            a[i][j] = data;
            i--;
            data++;
        }
        i++;
        j++;
    }

    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }

    system("pause");
}

 

posted @ 2016-01-15 09:35  喵小喵~  阅读(150)  评论(0编辑  收藏  举报