在 C 中显示螺旋矩阵

Display spiral matrix in C

提问人:Damian 提问时间:10/17/2022 最后编辑:marc_sDamian 更新时间:10/18/2022 访问量:210

问:

我目前被困在这一点上。我必须创建一个用户定义的 2 维数组,该数组将从 1 到 N*N,呈螺旋形,从中心开始,向左移动。

到目前为止,我设法打印出了数组,但我无法弄清楚如何让它螺旋状。

这是我想出的,这行不通。帮助将不胜感激。

我是C语言的新手。

#include <stdio.h>
#include <stdlib.h>

int N, i, j, x=0;

void spiral()
{
   int array[N][N];
   int k = 0, l = 0; // k = columns , l = rows
   int last_row = N - 1, last_column = N - 1;

   for (i = k; i <= last_column; i++)
   {
        k--;
        printf("%d ", array[k][j]);
   }

   for (j = l; i <= last_row; j++)
   {
        last_column++;
        printf("%d ", array[i][last_column]);
   }

   printf("\n");
}

int main()
{
    scanf("%d", &N);
    int array[N][N];
    spiral();

    for (i = 0; i < N; i++) //columns
    {
        for (j = 0; j < N; j++) //rows
        {
            x++;
            printf("%2d ", x);
        }

        printf("\n");
    }
}
数组 C 阵螺旋

评论

3赞 Some programmer dude 10/17/2022
看来你需要退后几步,在你的教科书中阅读范围。函数中的变量与函数中的变量不同arrayspiralarraymain
1赞 Some programmer dude 10/17/2022
也不要使用全局变量,它们是一个坏习惯。
1赞 Support Ukraine 10/17/2022
"...从中心开始向左延伸的螺旋形。4x4 矩阵的中心是什么
0赞 Neil 10/18/2022
从这个意义上说,“螺旋”到底是什么?从中心开始向左走似乎并没有确定所有参数。

答: 暂无答案