文章

12

粉丝

0

获赞

69

访问

1.3k

头像
旋转方阵 (C语言)题解:

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);

    int a[25][25] = {0};

    int dx[4] = {1, 0, -1, 0}; // 上 右 下 左
    int dy[4] = {0, 1, 0, -1};

    int x = 0, y = 0; // 起点:左上角
    int dir = 0;

    for(int num = 1; num <= n * n; num++)
    {
        a[x][y] = num;

        int nx = x + dx[dir];
        int ny = y + dy[dir];

        // 判断是否需要转向
        if(nx < 0 || nx >= n || ny < 0 || ny >= n || a[nx][ny] != 0)
        {
            dir = (dir + 1) % 4;
            nx = x + dx[dir];
            ny = y + dy[dir];
        }

        x = nx;
      &n...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发